13,190
社区成员
发帖
与我相关
我的任务
分享
static Main()
{
Action[] tests=Action[]{test1,test2,Class1.test1};
StartTest(tests);
}
自己写一个StartTest程序从测试程序集合中随机挑选一个Action执行,例如for(var i=0;i<100,i++)
tests[Rnd.Next(tests.Count)]();
这不就驱动起来了嘛!public void test1()
{
var r=fa(0);
Debug.Assert(r==1);
var r=fa(1);
Debug.Assert(r==1);
var r=fa(2);
Debug.Assert(r==2);
var r=fa(3);
Debug.Assert(r==6);
}
public void test2()
{
var r=fa(5);
Debug.Assert(r==120);
}
int fa(int x)
{
return 1;
}
int fa(int x)
{
if(x<=1)
return 1;
else
return 2;
}
于是第三个断言通过。可是第四个断言又出错,于是可以再重构为int fa(int x)
{
if(x<=1)
return 1;
else if(x==2)
return 2;
else
return 6;
}
......测试驱动首要的是保证尽可能简单设计。