public class Automobile
{
public string Model { get; set; }
public int TopSpeed { get; set; }
public Automobile(string model, int topSpeed)
{
// TODO: Complete member initialization
this.Model = model;
this.TopSpeed = topSpeed;
}
public Automobile()
{
// TODO: Complete member initialization
}
public void Start()
{
throw new NotImplementedException();
}
public bool IsRunning { get; set; }
}
{
public string Model { get; set; }
public int TopSpeed { get; set; }
public Automobile(string model, int topSpeed)
{
// TODO: Complete member initialization
this.Model = model;
this.TopSpeed = topSpeed;
}
public Automobile()
{
// TODO: Complete member initialization
}
public void Start()
{
throw new NotImplementedException();
}
public bool IsRunning { get; set; }
}
6. 运行测试程序
现在,我们可以从“Test->Run->All Tests in Solution”来运行测试项目中的所有测试,毫无例外的,我们的两个测试都会失败。
图7 测试失败
测试失败并没有让我们“胆战心惊”,相反,我们找到了前进的目标,我们接下来的任务就是修改代码的实现,使得测试通过,让红灯变成绿灯。
7. 实现代码,通过测试
在测试报告的帮助下,我们很快就找到了测试失败的原因:默认构造函数没有正确地初始化和Start()函数没有正确地启动我们的Automobile。所以,我们将这两个函数修改如下:
public Automobile()
{
this.Model = "Not specified";
this.TopSpeed = -1;
}
public void Start()
{
//throw new NotImplementedException();
this.IsRunning = true;
}
{
this.Model = "Not specified";
this.TopSpeed = -1;
}
public void Start()
{
//throw new NotImplementedException();
this.IsRunning = true;
}
然后,我们再重新运行测试,就会高兴地看到,所有测试都可以通过了,绿灯大开。
图8 测试成功
有了“即用即产生”功能,Visual Studio 2010中的TDD真如“行云流水”般顺畅。