提示5-22:记录或指定带有单元测试的接口!

提示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框架。