Java 每次测试后都应该运行tearDown()吗?
我认为Java 每次测试后都应该运行tearDown()吗?,java,android,unit-testing,robotium,Java,Android,Unit Testing,Robotium,我认为tearDown()应该在每次测试之后运行,但我从日志中看到,它是在setUp()方法之后启动的。你们能澄清一下吗 public class LaunchManagerActivityTest extends ActivityInstrumentationTestCase2<LaunchManagerActivity> { private Solo solo; public LaunchManagerActivityTest() { super
tearDown()
应该在每次测试之后运行,但我从日志中看到,它是在setUp()
方法之后启动的。你们能澄清一下吗
public class LaunchManagerActivityTest extends ActivityInstrumentationTestCase2<LaunchManagerActivity> {
private Solo solo;
public LaunchManagerActivityTest() {
super(LaunchManagerActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
Log.e("Dev", "setup");
solo = new Solo(getInstrumentation(), getActivity());
}
protected void tearDown() throws Exception {
super.tearDown();
Log.e("Dev", "tearDown ");
}
您发布的类中没有测试,所以它只是运行安装程序,然后卸载。这是预期的行为,如果您有任何测试,它将运行:
constructor()
setUp();
testXXX();
tearDown();
如果您有两个测试,它将运行
constructor()
setUp();
testXXX();
tearDown();
setUp();
testXXX2();
tearDown();
记住JUnit3(android使用)中的一个测试必须从单词test开始,并且必须在同一个类中
要测试我所说的内容,请在中添加以下方法:
public void testXXX(){
Log.d("Dev", "testXXX ");
}
public void testXXX2(){
Log.d("Dev", "testXXX2 ");
}
我想这是JUnit3。每次测试后都会运行拆卸。您的测试文件中有任何测试吗?JUnit将只运行在当前类中定义的测试。您没有测试用例。所以,我相信这是意料之中的。是的,它是在每个testXXX方法之后调用的。可能您的测试没有输出任何东西。@RKajaMohideen我认为他在超类中至少隐藏了一个测试用例。否则,既不会调用
设置
也不会调用拆卸
。
public void testXXX(){
Log.d("Dev", "testXXX ");
}
public void testXXX2(){
Log.d("Dev", "testXXX2 ");
}