作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有三个 JUnit 测试类,它们都有一些通用代码,包括相同的 setup() 方法。因此,我将这段代码分解到它自己的扩展 TestCase 的类中,现在三个早期的 JUnit 测试类扩展了这个新类。新的父类(super class)本身不包含任何测试。
但是,在我们的构建中,JUnit 运行所有 JUnit 测试类,包括没有测试的新父类(super class)。它给出了这个错误:
junit.framework.AssertionFailedError: No tests found in com.acme.ControllerTest
我可以通过创建一些在 ControllerTest 中不执行任何操作的简单测试来消除此错误。但是有更简洁的方法来解决这个问题吗?
最佳答案
这对我有用
public abstract class BaseTest extends TestCase {
public void setUp(){
System.out.println("before called");
}
}
public class Test1 extends BaseTest {
public void test() {
Assert.assertTrue(true);
System.out.println("Test1");
}
}
public class Test2 extends BaseTest {
public void test() {
Assert.assertTrue(true);
System.out.println("Test2");
}
}
我得到的输出是
before called
Test2
before called
Test1
对于 JUnit4,您甚至不需要将基类抽象化。您可以只使用以下内容
public class BaseTest {
@Before
public void setUp(){
System.out.println("before called");
}
}
public class Test1 extends BaseTest {
@Test
public void test() {
Assert.assertTrue(true);
System.out.println("Test1");
}
}
public class Test2 extends BaseTest {
@Test
public void test() {
Assert.assertTrue(true);
System.out.println("Test1");
}
}
我强烈推荐使用 JUnit 4。使用注解意味着你打破了一些可能会造成混淆的继承依赖。
关于java - 没有测试用例的 super JUnit 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290021/
我是一名优秀的程序员,十分优秀!