提示5-22:记录或指定带有单元测试的接口!
#building-block #interface #testing
实施单元测试已成为许多开发人员的(相当)标准。我们想为此类测试提出一个额外的目的:接口规范或文档。
进行详细的测试(并且高度敏捷!)文档,或者仅作为实际测试(用于验证应用程序行为)。
单元测试包含以下信息:
- 必须(以编程方式)创建才能使用特定界面的先决条件
- 显示可以在什么星座或上下文中使用界面
- 在接口的实现被使用后,可以期待什么样的后果(通过assert语句)
您可以编写单元测试,并使用一种或几种测试方法作为文档(或规范),而不是任何图形或文本规范或描述。
如果您将代码存储库中的这些测试集成到文档中,您将免费获得文档的最新更新。
单元测试作为接口文档的示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| package joptsimple.examples; import joptsimple.OptionParser; import joptsimple.OptionSet; import org.junit.Test; import static org.junit.Assert.*; public class ShortOptionsTest { @Test public void supportsShortOptions() { OptionParser parser = new OptionParser( "aB?*." ); OptionSet options = parser.parse( "-a", "-B", "-?" ); assertTrue( options.has( "a" ) ); assertTrue( options.has( "B" ) ); assertTrue( options.has( "?" ) ); assertFalse( options.has( "." ) ); } }
|
应用行为驱动发展(BDD)
您可以以行为驱动方式(BDD)开发您的系统或其部分。然后,系统的规范既可以作为文档,也可以作为自动测试。支持BDD的一个可能框架是黄瓜,另一个是Spock框架。