Cucumber 小黄瓜(SpecFlow)场景大纲步骤中是否可以转义尖括号?
我有一个场景大纲,其中需要包括文字尖括号:Cucumber 小黄瓜(SpecFlow)场景大纲步骤中是否可以转义尖括号?,cucumber,specflow,gherkin,Cucumber,Specflow,Gherkin,我有一个场景大纲,其中需要包括文字尖括号: Given I have sent "MAIL FROM:<user@example.com>" When I send "<command>" Then I should get a <code> reply Examples: | command | code | | RCPT TO:<bogus> | 5xx | | RCPT TO:<
Given I have sent "MAIL FROM:<user@example.com>"
When I send "<command>"
Then I should get a <code> reply
Examples:
| command | code |
| RCPT TO:<bogus> | 5xx |
| RCPT TO:<valid> | 2xx |
是否有可能避开周围的角括号user@example.com因此,它不会被当作占位符?这看起来像是对您的问题的一个非常技术性的定义,当然不是与您的业务部门中的某个人进行对话所产生的结果。虽然没有什么可以阻止您使用“按示例说明”样式运行单元测试,但这并不是它真正的设计目的。小黄瓜被认为是问题空间的一种自然语言表现形式,就像英语一样,我发现它难以用更精确的定义来表达,比如冒号小于user,在example.com大于 您只需更改绑定定义,使其更轻松一点 而不是使用
[Given("I have sent (.*)")]
public void IHaveSent(string line)
{
DoSomethingWith(line);
}
试一试
但是,如果您更全面地定义示例,您将获得更大的好处。而不是user@example.com让我们称他为比尔,并在小黄瓜之外定义我们认为比尔试图做的事情。例如,Bill可能在尝试有效的场景,而Ted可能在尝试虚假的场景
Given I have an email from Bill
When I get a receipt
Then it should be valid
Given I have an email from Ted
When I get a receipt
Then it should be bogus
这个问题的答案似乎是不,不可能在Specflow的Gherkin解析器中使用文字尖括号。我不确定我是否同意这样一个前提,即spec-by-example中的每个示例都需要非常高的级别。您假设正在测试的软件的级别高于我在本测试中所表示的级别。我想做的是用具体的例子来定义这个软件的规范,在我看来,一个例子一个例子都很合适。另一个能够使用literal的例子我并不是说它应该是高层次的,只是它应该用文字表达,因为BDD是关于进行对话的,不幸的是,符号很难用这种方式表达。
Given I have sent mail from user@example.com
Given I have an email from Bill
When I get a receipt
Then it should be valid
Given I have an email from Ted
When I get a receipt
Then it should be bogus