1

我有一个场景大纲,其中需要包含文字尖括号:

  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,使其不被视为占位符?

4

2 回答 2

0

这听起来像是对您的问题的一个非常技术性的定义,当然不是与您业务部门的某人交谈的结果。虽然没有什么可以阻止您使用“按示例规范”样式运行单元测试,但这并不是它的真正设计目的。Gherkin应该是问题空间的自然语言表示,就像英语一样,我发现它在更精确的定义方面遇到了困难,例如冒号小于用户,例如 .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 正在尝试做的事情。例如,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
于 2013-02-07T07:03:56.370 回答
0

这个问题的答案似乎是不,不可能在 Specflow 的 Gherkin 解析器中使用文字尖括号。

于 2014-11-25T17:42:48.577 回答