本节课主要学习如何针对不同类型的方法编写测试用例,例如:
看下面这个代码:
public class HtmlFormatter
{
public string FormatAsBold(string content)
{
return $"<strong>{content}</strong>";
}
}
然后我们编写测试输出的测试用例:
[TestFixture]
public class HtmlFormatterTests
{
private HtmlFormatter _formatter;
[SetUp]
public void SetUp()
{
_formatter = new HtmlFormatter();
}
[Test]
public void FormatAsBold_WhenCalled_ShouldEncloseTheStringWitchStrongElement()
{
var result = _formatter.FormatAsBold("abc");
Assert.That(result, Does.StartWith("<strong>").IgnoreCase);
Assert.That(result, Does.EndWith("</strong>").IgnoreCase);
Assert.That(result, Does.Contain("abc"));
}
}
比起直接在断言中写出<strong>abc</strong>,我们使用这种更通用的写法或许会更好,另外断言中的语句是可以链式调用的,所以我们可以继续加点来添加更多的限制,.Ignore 可以忽视大小写的问题。
不过这个测试还是有一点问题的,如果它输出了 <strong>abcd</strong> 的话,这个测试依然会给它判对,