清单 2. Add.php <?php
function add( $a, $b ) { return 0; }
?>
现在运行单元测试时,这两个测试都会失败。
清单 3. 测试失败 % phpunit TestAdd.php
PHPUnit 2.2.1 by Sebastian Bergmann.
FF
Time: 0.0031270980834961
There were 2 failures:
1) test1(TestAdd)
2) test2(TestAdd)
FAILURES!!!
Tests run: 2, Failures: 2, Errors: 0, Incomplete Tests: 0.
现在我知道这两个测试都可以正常工作了。因此,可以修改 add() 函数来真正地做实际的事情了。 <?php
function add( $a, $b ) { return $a+$b; }
?>
现在这两个测试都可以通过了。
清单 4. 测试通过 % phpunit TestAdd.php
PHPUnit 2.2.1 by Sebastian Bergmann.
..
Time: 0.0023679733276367
OK (2 tests)
%
尽管这个测试驱动开发的例子非常简单,但是我们可以从中体会到它的思想。我们首先创建了测试用例,并且有足够多的代码让这个测试运行起来,不过结果是错误的。然后我们验证测试的确是失败的,接着实现了实际的代码使这个测试能够通过。
我发现在实现代码时我会一直不断地添加代码,直到拥有一个覆盖所有代码路径的完整测试为止。在本文的最后,您会看到有关编写什么测试和如何编写这些测试的一些建议。
文章来源于领测软件测试网 https://www.ltesting.net/