我想在我的生活中写下第一次单元测试。
目前,我正在开发新的ASP.NET MVC 5项目。这是简单的工作流程系统。我的项目包含4层:
我相信,我首先需要测试服务层。是对的吗?我应该先测试哪一层?
答案 0 :(得分:4)
没有一种正确的方法,但最常见的技术是
正如Code Complete所描述的那样,交替使用双重方法实际上可能是有益的,因为你从做一件事中学到的东西,可以帮助你更好地理解你在另一端需要做什么,反之亦然。我经常做一些Outside-In,然后是一些Bottom-Up,然后是一些Outside-In等等。
答案 1 :(得分:3)
根据Mark Seemann's answer,您可以先从UI图层进行测试,然后使用数据图层进行测试,反之亦然。
谁负责该项目?项目的哪个部分对业务至关重要?而不是“横向”跨越每一层测试,“垂直”测试所有层的特定功能。
这为您提供了基于业务优先级的覆盖范围的好处,您可以在开始测试每个功能时应用所有层中所需的可测试性更改或技术。
由于您已经编写了代码,因此请准备重构某些代码以使其更易于测试(例如,设置依赖注入以隔离代码以进行单元测试)并记下这些更改以帮助设计将来的可测试性。