单元测试 toString 方法
Unit testing toString method
我尝试将测试单元化为 Tostring 方法:
所以我有这个代码:
public class Parcel
{
//Working
}
你应该这样写你的测试:
[Test]
public void ParcelsUpToWeightOneKGShouldBeDepartmentMail()
{
var parcel = new Parcel { Name="pacel ", PostalCode="2582Cd", Weight= 0.02m, Value=0.0m};
Assert.Equal("Name: pacel - Postal code 2582Cd - Weight 0.02 - Value 0.0 - Department Mail", parcel.ToString());
}
ToString()
方法returns一个字符串,但是不改变parcel的状态。所以你应该检查返回值。
您写道:“我只想对方法 CreateDepartmentValue 的第一个条件进行单元测试。”在那种情况下,不要测试 ToString()
方法,而是测试 Department
属性 的值。您的测试变得更加稳定,因为否则如果您更改 ToString()
方法,您将不得不更改测试,尽管您只对 Deptartment
属性.[= 的值感兴趣15=]
您的测试可能如下所示:
[Test, Pairwise]
public void DepartementShouldDependOnWeight(
[Values(1.0m, 1.01m, 10.0m, 10.01m)]decimal weight,
[Values("Mail","Regular","Regular","Heavy")]string expectedDepartment)
{
var parcel = new Parcel { Weight = weight, Value = 0 };
Assert.AreEqual(parcel.Department, expectedDepartment);
}
我尝试将测试单元化为 Tostring 方法:
所以我有这个代码:
public class Parcel
{
//Working
}
你应该这样写你的测试:
[Test]
public void ParcelsUpToWeightOneKGShouldBeDepartmentMail()
{
var parcel = new Parcel { Name="pacel ", PostalCode="2582Cd", Weight= 0.02m, Value=0.0m};
Assert.Equal("Name: pacel - Postal code 2582Cd - Weight 0.02 - Value 0.0 - Department Mail", parcel.ToString());
}
ToString()
方法returns一个字符串,但是不改变parcel的状态。所以你应该检查返回值。
您写道:“我只想对方法 CreateDepartmentValue 的第一个条件进行单元测试。”在那种情况下,不要测试 ToString()
方法,而是测试 Department
属性 的值。您的测试变得更加稳定,因为否则如果您更改 ToString()
方法,您将不得不更改测试,尽管您只对 Deptartment
属性.[= 的值感兴趣15=]
您的测试可能如下所示:
[Test, Pairwise]
public void DepartementShouldDependOnWeight(
[Values(1.0m, 1.01m, 10.0m, 10.01m)]decimal weight,
[Values("Mail","Regular","Regular","Heavy")]string expectedDepartment)
{
var parcel = new Parcel { Weight = weight, Value = 0 };
Assert.AreEqual(parcel.Department, expectedDepartment);
}