Вопрос: нормально ли при тестировании UI не использовать Given, если ввод данных это взаимодействие с интерфейсом? Т.е. нельзя установить значения.
When: я нажимаю на кнопку А
When: и нажимаю на кнопку Б
Then: создается объект C
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
public static void LaunchMinecraft() {
String nickname = "Kats555";
String Class = "net.minecraft.client.main.Main";
List < URL > url = new ArrayList < URL > ();
File Dir = new File(".");
System.out.println("Путь до папки с клиентом -> " + Dir.getAbsolutePath());
if (!new File(Dir.getAbsolutePath() + "/natives").exists()) new File(Dir.getAbsolutePath() + "/natives").mkdirs(); //Папка с нативами
try {
url.addAll(getLibs(new File(Dir.getAbsolutePath() + "/versions"))); //Папка с клиентом
url.addAll(getLibs(new File(Dir.getAbsolutePath() + "/libraries"))); //Папка с либами
} catch (Exception x) {
System.out.println("Неправильный путь к клиенту");
}
URLClassLoader cl = new URLClassLoader(url.toArray(new URL[url.size()]));
System.out.println("Список загруженных jar ->" + url);
System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
System.setProperty("fml.ignorePatchDiscrepancies", "true");
System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath() + "/natives");
System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath() + "/natives");
System.setProperty("java.library.path", Dir.getAbsolutePath() + "/natives");
List < String > params = new ArrayList < String > ();
try {
cl.loadClass("com.mojang.authlib.Agent");
params.add("--accessToken");
params.add("1");
params.add("--uuid");
params.add("12345");
params.add("--userProperties");
params.add("{}");
params.add("--assetIndex");
params.add("1.7.10");
} catch (ClassNotFoundException x) {
params.add("--session");
params.add("1");
}
params.add("--username");
params.add(nickname);
params.add("--version");
params.add("1.7.10");
params.add("--gameDir");
params.add(Dir.getAbsolutePath() + "/");
params.add("--assetsDir");
params.add(Dir.getAbsolutePath() + "/assets");
try {
Class < ? > start = cl.loadClass(Class);
System.out.println("Запуск клиента");
Method main = start.getMethod("main", new Class[] {
String[].class
});
main.invoke(null, new Object[] {
params.toArray(new String[0])
});
} catch (Exception x) {
System.out.println(x);
}
}
private static List < URL > getLibs(File libsfolder) throws MalformedURLException {
List < URL > libs = new ArrayList < URL > ();
if (!libsfolder.exists()) libsfolder.mkdirs();
for (File file: libsfolder.listFiles()) {
if (file.isDirectory()) {
libs.addAll(getLibs(file));
} else {
if (file.getName().endsWith(".jar")) {
libs.add(file.toURI().toURL());
}
}
}
return libs;
}