如果你写了一个方法
public static string ToMappingString(this Widget obj)
然后您可以通过批准测试(www.approvaltests.com 或 nuget)轻松地对此进行测试
这里有一个视频:http ://www.youtube.com/watch?v=vKLUycNLhgc
但是,如果您要测试“我的对象保存并自行检索”,那么这是“基于理论的测试”的理想场所
基于理论的测试
大多数单元测试采用以下形式
Given A,B expect C
基于理论的测试是
Given A,B expect Theory
这样做的好处是无需担心 A 和 B 采用哪种特定形式,因为您不需要知道 C,因此任何随机生成器都可以工作。
示例 1:测试 Add 和 Subtract 方法
通常你会有类似的东西
Assert.AreEqual(5, Add(2,3));
Assert.AreEqual(9, Add(10,-1));
Assert.AreEqual(10, Add(5,5));
Assert.AreEqual(7, Subtract(10,3));
但是,如果您编写了一个理论测试,它看起来像
for(int i = 1; i < 100; i++)
{
int a = random.Next();
int b = random.Next();
Assert.AreEqual(a, Subtract(Add(a,b),b, string.Format("Failed for [a,b] = [{0},{1}], a,b));
}
既然您了解了基于理论的测试,那么您要测试的理论是
Given Model A
When A is stored to the database, and retrieved the resulting object is equal to A