包含此页的版本:
不含此页的版本:
本练习介绍了Assert.That和相关类。
NUnit 测试框架和 Unity 测试框架有一系列类,用于以更接近自然语言的方式断言对象。这使得语句易于阅读。
以下是有关如何使用语义断言类的一些示例:
Assert.That(myValue, Is.GreaterThan(20));
Assert.That(str, Does.Contain("a string").And.Contain("something else"));
在这里,我们检查变量myValue大于 20,则字符串str包含“字符串”和“其他东西”。
语义断言也称为约束模型。以外It和Does还有多个其他关键字可以使用。
在3_SemanticTestAssertion sample,有一个名为ValueOutputter,返回不同类型的值。
编写对不同输出进行断言的测试。应验证:
GetInt()返回 11。GetString()返回包含单词string和asserted.GetFloat()返回一个大约 19.33 的值。示例中提供了练习的完整解决方案3_SemanticTestAssertion_Solution.
internal class ValueOutputterTests
{
[Test]
public void GivesExpectedInt()
{
var outputterUnderTest = new ValueOutputter();
var number = outputterUnderTest.GetInt();
Assert.That(number, Is.EqualTo(11));
}
[Test]
public void GivesExpectedString()
{
var outputterUnderTest = new ValueOutputter();
var str = outputterUnderTest.GetString();
Assert.That(str, Does.Contain("string").And.Contain("asserted"));
}
[Test]
public void GivesExpectedFloat()
{
var outputterUnderTest = new ValueOutputter();
var number = outputterUnderTest.GetFloat();
Assert.That(number, Is.GreaterThan(19.33f).And.LessThan(19.34f));
}
}