一个单元测试的例子:
[TestMethod] // 1.4 构造Mock对象 // 1.6 连接被测对象和依赖项 // 2. 声明期待 // 3. 执行测试 // 4. 校验 |
推荐的单元测试写法
目前的单元测试中,往往准备工作很复杂,反而真正测试的工作比较简单。就像上面的例子中,准备的代码写了8行,其它真正测试所关心的代码却只有4行。这是一个非常不舒服的状态。但是,我也没有找到更好的方式来解决这个问题。只能说在架构上让各个模块的依赖尽可能的小,从而减少准备工作的量。
另一方面,通过在代码中适当的增加几行注释,可以很好的帮助阅读的人找到重点。我觉的如果整个团队都采用一致的编码习惯,阅读效率会提高很多。如下是上面的例子去除了多余的注释后的版本。
[TestMethod] // Prepare var selectionService = new SelectionService(); var mockNavigationService = new Mock<INavigationService>(); c.AddService<ISelectionService>(selectionService); // Expect // Act // Verity |