5

我很难找到“测试用例”这个词的硬定义。一些消息来源声称测试用例是扩展的类TestCase。其他来源声称测试用例是一种单一的测试方法。JUnit 文档不清楚,在我看来“测试用例”和“测试”这两个词的含义相同:

Test注释告诉 JUnit,它所附加的方法public void可以作为测试用例运行。为了运行该方法,JUnit 首先构造一个新的类实例,然后调用带注释的方法。测试抛出的任何异常都会被 JUnit 报告为失败。如果没有抛出异常,则假定测试成功。

那么究竟什么是“测试用例”,它与“测试”又有什么关系呢?

4

2 回答 2

1

我会向您指出有关TestCase的 JUnit 文档。在其中,它描述了它表示 TestCase 的三个条件:

  1. 实现 TestCase 的子类
  2. 定义存储夹具状态的实例变量
  3. 通过覆盖 setUp() 初始化夹具状态
  4. 通过覆盖 tearDown() 进行测试后的清理。

我认为 setUp 和 tearDown 部分对于理解这里至关重要。测试用例不仅仅是一种带注释的方法。测试用例是该方法加上将在其上运行测试的框架的初始化和销毁​​。

因此,要回答您的问题,测试是一种带注释的方法,它尝试验证单个方法的工作原理,而测试用例是该测试加上将在其中运行的框架。

于 2011-03-07T14:35:22.087 回答
1

在 JUnit 上下文中,“测试用例”可以表示包含相关测试的类(在 JUnit 4 中,您不必再扩展TestCase)或单个测试方法。这个词真的没有硬性定义。

在我的书中,一个测试用例是这个问题的答案:被测代码的行为是否符合预期?

测试用例可能很小:

Foo foo = new Foo();
assertEquals( "...", foo.bar(5) );

或者他们可以设置一个数据库,将它与测试数据一起使用,创建一个对象模型,然后调用几个方法来验证对象模型的修改是否按预期工作。

于 2011-03-08T09:31:01.363 回答