如何在断言中使用正则表达式通配符?

时间:2017-09-27 14:40:38

标签: regex nunit assert

我正在尝试对表头中的某些细节进行一般Assert.AreEqual调用,但是我正在努力弄清楚如何成功格式化预期结果。 GetTableHeader调用的返回值如下:

"× •••\r\nAcme Health Fund\r\nBalance Date: 9/27/2017"

我只想断言Acme Health Fund的文本存在。我目前的电话是:

Assert.AreEqual("/.*Acme Health Fund.*/" , GetTableHeader() );

如何将AreEqual调用中的第一个参数格式化为仅"Acme Health Fund"

1 个答案:

答案 0 :(得分:7)

NUnit 3有一个更强大的约束语法,我建议你改用它。新功能将添加到约束语法中,而不是旧的Assert.AreEqual样式。

正则表达式对你想要的东西来说太过分了,你需要做的就是断言字符串Does.Contain的名字。

Assert.That(GetTableHeader(), Does.Contain("Acme Health Fund"));

如果你真的需要使用正则表达式,首先你不需要用斜杠包围它,而是使用Does.Match语法。

Assert.That(GetTableHeader(), Does.Match(".*Acme Health Fund.*"));

请注意正则表达式中的修复。