我有一个场景大纲,其中我需要包含文字尖括号:
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
左右的尖括号,以便不将其视为占位符?
答案 0 :(得分:0)
这看起来像是对您的问题的一个非常技术性的定义,当然不是与您的业务部门中的某人进行对话所导致的。虽然没有什么可以阻止您使用规范示例样式运行单元测试,但实际上并不是它的设计目标。 Gherkin 应该是问题空间的自然语言表示,就像英语一样,我发现它与更精确的定义相悖,例如冒号小于用户,例如dot com大于
您可以更改绑定定义,使其更轻松一些
而不是使用
[Given("I have sent (.*)")]
public void IHaveSent(string line)
{
DoSomethingWith(line);
}
尝试
[Given("I have sent mail from (.*)")]
public void IHaveSentMailFrom(string email)
{
DoSomethingWith(string.Format("MAIL FROM:<{0}>");
}
所以它变得更像
Given I have sent mail from user@example.com
但是,如果您更充分地定义示例,那么您将获得更大的好处。而不是user@example.com让我们称他为Bill并定义(在Gherkin之外)我们认为Bill正在尝试做什么。例如。比尔可能正在尝试做有效的场景,而特德可能会尝试虚假的场景。
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
答案 1 :(得分:0)
似乎这个问题的答案是,不,不可能在Specflow的Gherkin解析器中使用文字尖括号。