feature文件大部分是文本,还有一小部分机器可读的标记元素。由相应的测试代码使用正则表达式去解析场景的文本。
feature文件也可以由你们团队使用的语言来本地化。这对于不习惯用英语的人来说很有帮助。
feature需要真正的代码来执行,所以需要用某种方式去将feature绑定到代码。
你需要一个带有某些注解的测试类让Cucumber司以和JUnit -起工作
@RunWith (Cucumber.class)
@Cucumber.Options (
glue = "matangle . glue . manageUser" ,
features = " features/manageUser . feature " ,
format= (”pretty", "html: target/Cucumber‘‘}
在这个例子中,按照约定,Cucumbei测试类名都有个Step的后缀。
现在你需要把测试方法和feature场景绑定在一起,并且从feature描述中解析出参数,传给测试方法。Java的Cucumber版本基本上都是用注解实现的。这些注解对应于feature文件中使用的关键字:
@Given ( " .+a user with the name ' ( .+) I ")
public void addUser (String name) {
在这个用例中,不同的输入保存在成员变量中,直到整个用户界面事务准备完毕。操作的顺序取决于feature文件中实现的顺序。
为了证明Cucumber可以有不同的实现,本书的源码包中还有一个Clojure的例子。
到目前为止,我们已经明白,需要Selenium的一些类库和Cucumber去运行测试
Cucumber的feature描述和我们的测试代码类绑定在一起。