如何使用JUnit4TestAdapter与对象
我想用JUnit4TestAdapter编写一个使用JUnit4的测试套件。看看code of this class我看到它只能用Class作为输入。我想构建一个测试类并在使用TestSuite运行它之前设置一个参数。不幸的是,Junit4TestAdapter通过使用反射来构建测试(不是100%确定它背后的机制),这意味着我无法在运行时更改我的测试类。 以前有人做过类似的事吗?有没有可能的解决方法来解决这个问题?谢谢你的帮助!如何使用JUnit4TestAdapter与对象
public class SimpleTest {
@Test
public void testBasic() {
TemplateTester tester = new TemplateTester();
ActionIconsTest test = new ActionIconsTest();
test.setParameter("New Param Value");
tester.addTests(test);
tester.run();
}
}
/////
public class TemplateTester {
private TestSuite suite;
public TemplateTester() {
suite = new TestSuite();
}
public void addTests(TemplateTest... tests) {
for (TemplateTest test : tests) {
suite.addTest(new JUnit4TestAdapter(test.getClass()));
}
}
public void run() {
suite.run(new TestResult());
}
}
/////
public interface TemplateTest {
}
/////
public class ActionIconsTest extends BaseTestStrategy implements TemplateTest {
@Test
public void icons() {
//Test logic here
}
public void navigateToTestPage() {
//Here I need the parameter
}
}
/////
public abstract class BaseTestStrategy {
protected String parameter;
@Before
public void init() {
navigateToTestPage();
}
public abstract void navigateToTestPage();
public void setParameter(String parameter) {
this.parameter = parameter;
}
}
我想用Selenium测试一个Web应用程序。我想测试的方式是分割功能,例如,我想测试可用的图标(ActionIconsTest),然后我想测试其他部分,如按钮等。 这背后的想法是有一个更好的分类在某些屏幕上可用的功能。这与我们正在开发我们的网络应用程序的方式非常相关。
考虑到这一点,TemplateTest只是一个由我的系统中可用的不同类型的测试(ActionIconTest,ButtonTest等)实现的接口。 TemplateTester是一个Junit套件测试,包含实现TemplateTest接口的所有不同测试。
这个问题的原因是因为我试图实现策略模式,然后意识到在运行时将类传递给Junit4TestAdapter不方便。
好,同时在帐户JUNIT需要你的测试仪的类对象作为一个对象工厂(这样他就可以创造几个实例测试仪的),我只能建议你传递参数测试仪通过系统属性。
而且,它的传递参数的推荐方法:http://junit.org/faq.html#running_7
感谢您的回复。我添加了一些代码,也许现在更清楚我想实现什么。 – narko
你能不能给我们说你正在试图解决更大的问题的背景?什么是'TemplateTest'?什么是“ActionIconsTest”?什么是'TemplateTester'用于?为什么'TemplateTester'从JUnit测试中调用,但也使用JUnit类? – NamshubWriter
我在我的问题的底部添加了更新。 – narko