{
ISearchEngine engine = InternetSearchEngine.Instante;
Assert.IsNotNull(engine);
……
}
既然有如此多的类型,类型的创建就必须通过工厂进行管理。此时测试代码需要做进一步的修改:
[Test]
public void TestInternetSearching()
{
ISearchEngineFacotry fatory = new InternetSearchEngineFactory();
ISearchEngine engine = factory.CreateInstante(“Internet”);
Assert.IsNotNull(engine);
……
}
同理,我们应该分别实现测试方法TestLocalSearching()和TestDBSearching()。
按照这样的思路,分别对存储功能和显示功能进行重构。记住,每做一步重构,都需要严格按照TDD的方式。首先写出测试代码,然后在NUnit运行。如果是红灯,需要写出相应的代码,再运行NUnit,直到全部均为绿灯为止。
三、第一步的小结
表面上看,这样繁复地写测试代码,程序代码,确实是有些Kill Time了。但我们需要认真地思考所谓“发现价值”的意义。通过测试先行的方式,以模拟客户应用的状态来考量客户的需求,并通过此驱动程序员一步一步地到达“生产价值”的终点。“发现”与“生产”并行不悖,同时“质检员”一直跟随其间,保证了产品的质量。
就好比Nike鞋的生产,必须以体贴用户的角度出发,设计出吸引人的样式,那么大规模的生产才会有盈利的可能。
TDD的生产过程也许慢了一点,但请不要忽略了它其实已经省去了编码后单元测试的时间。相加相减之后,又会浪费多少时间呢?所以,千万不要以“时间紧”的理由来搪塞我哦。
文章来源于领测软件测试网 https://www.ltesting.net/