gpt4 book ai didi

java - 没有测试用例的 super JUnit 类

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:10:30 26 4
gpt4 key购买 nike

我有三个 JUnit 测试类,它们都有一些通用代码,包括相同的 setup() 方法。因此,我将这段代码分解到它自己的扩展 TestCase 的类中,现在三个早期的 JUnit 测试类扩展了这个新类。新的父类(super class)本身不包含任何测试。

但是,在我们的构建中,JUnit 运行所有 JUnit 测试类,包括没有测试的新父类(super class)。它给出了这个错误:

junit.framework.AssertionFailedError: No tests found in com.acme.ControllerTest

我可以通过创建一些在 ControllerTest 中不执行任何操作的简单测试来消除此错误。但是有更简洁的方法来解决这个问题吗?

最佳答案

这对我有用

JUnit 3

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

JUnit 4

对于 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com