首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >测试混淆:使用‘扩展TestCase’还是‘@ JUnit’?

测试混淆:使用‘扩展TestCase’还是‘@ JUnit’?
EN

Stack Overflow用户
提问于 2010-04-14 16:16:28
回答 5查看 79.2K关注 0票数 171

我发现JUnit的正确用法(或者至少是文档)非常令人困惑。这个问题既可以作为未来的参考,也可以作为一个真正的问题。

如果我没理解错的话,有两种主要的方法来创建和运行JUnit测试:

方法A (JUnit 3风格):创建一个扩展TestCase的类,并使用单词test开始测试方法。当将类作为Eclipse运行时(在JUnit中),所有以单词test开头的方法都会自动运行。

代码语言:javascript
复制
import junit.framework.TestCase;

public class DummyTestA extends TestCase {

    public void testSum() {
        int a = 5;
        int b = 10;
        int result = a + b;
        assertEquals(15, result);
    }
}

方法B (JUnit 4样式):创建一个“normal”类,并在方法前面添加一个@Test注释。请注意,您不必以单词test开头该方法。

代码语言:javascript
复制
import org.junit.*;
import static org.junit.Assert.*;

public class DummyTestB {

    @Test
    public void Sum() {
        int a = 5;
        int b = 10;
        int result = a + b;
        assertEquals(15, result);
    }
}

将两者混合在一起似乎不是一个好主意,参见例如this stackoverflow question

现在,我的问题是:

  1. What是首选的测试方法,或者什么时候使用other?
  2. Approach来代替B允许通过像@Test(expected = ArithmeticException.class)中那样扩展@ testing来测试异常。但如何测试异常使用方法A时,您可以在测试套件中对许多测试类进行分组,如下所示:

TestSuite suite = new TestSuite("All tests");

suite.addTestSuite(DummyTestA.class);

suite.addTestSuite(DummyTestAbis.class);

但这不能与方法B一起使用(因为每个测试类都应该是TestCase的子类)。对方法B的测试进行分组的正确方法是什么?

编辑:我已经将JUnit版本添加到这两种方法中

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2635839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档