什么是测试用例?

时间:2011-03-07 14:30:46

标签: testing junit terminology testcase

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

  

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

究竟什么是“测试用例”,它与“测试”的关系是什么?

2 个答案:

答案 0 :(得分:1)

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

  1. 实现TestCase的子类
  2. 定义存储夹具状态的实例变量
  3. 通过覆盖setUp()
  4. 来初始化灯具状态
  5. 通过覆盖tearDown()进行测试后进行清理。
  6. 我认为setUp和tearDown部分对于理解这一点至关重要。这不仅仅是测试用例只是一种带注释的方法。测试用例是该方法加上初始化和销毁​​将在其上运行测试的帧。

    因此,为了回答您的问题,测试是一种带注释的方法,它试图验证单个方法的工作情况,而测试用例是测试加上将运行它的框架。

答案 1 :(得分:1)

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

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

测试用例可能很小:

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

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