在测试类这一栏中写上将要被测试的类名HelloWorld选择一个测试案例的名字例如TestThatWeGetHelloWorldPrompt(是的看上去很长但是很清楚它的行为)点击完成
TestThatWeGetHelloWorldPrompt的代码如下
import junitframeworkTestCase;
public class TestThatWeGetHelloWorldPrompt
extends TestCase {
public TestThatWeGetHelloWorldPrompt(
String name) {
super(name);
}
public void testSay() {
HelloWorld hi = new HelloWorld();
assertEquals(Hello World! hisay());
}
public static void main(String[] args) {
junittextuiTestRunnerrun(
TestThatWeGetHelloWorldPromptclass);
}
}
代码并不复杂只是有点与众不同然而让我们考察一下细节我们继承了JUnit的TestCase类它在JUnit的javadocs定义为运行众多测试的夹具JUnit也有TestSuite类它是一组测试案例的集合但在本文中不做讨论
建立测试案例的步骤如下
建立一个junitframeworkTestCase的实例
定义一些以test开头的无返回方法(例如testWasTransactionSuccessful()testShow()等等)
TestThatWeGetHelloWorldPromptjava包含这些TestCase的子类和一个叫做testSay()的方法这个方法调用了assertEquals()函数它用来比较我们预期的值和由say()返回的值
main()方法用来运行测试和显示输出的JUnit的TestRunner处理测试提供基于图像和文本的输出表现形式我们使用基于文本的版本因为Eclipse支持它且也适合我们当开始运行后基于文本的版本测试会以文本形式输出Eclipse会把这些输出自动变成图像界面的输出
按照TDD规范首次运行测试应该故意让它失败点击运行>运行为>Junit测试(记住TestThatWeGetHelloWorldPromptjava应该被突出的显示在包资源管理器中)在左边窗口应该看见JUnit窗口而不是包资源管理器它显示一个红条一次失败的测试具体的失败原因参看图如果没有自动显示这些内容点击JUnit标签(在底部的左边)
图 JUnit中失败的测试
[] [] [] []