我开始在我们公司引入正式单元测试,因为我们有一个越来越大的项目,在这个项目上另一个人会帮助我。所以我需要确保他所做的事情不会破坏一切,反之亦然。
我也想介绍一个 CI 服务器,但这将是其他问题的主题。现在的问题是:我目前正在阅读“单元测试的艺术”(这是推荐的杰作!),作者强调的是单元测试与集成测试不同。这对我来说很清楚,如果我理解得很好,业务逻辑单元测试应该避免依赖于数据库连接等等。首先:我说的对吗?
所以,假设我是对的(即当我对我的 BLL 进行单元测试时,我应该存根数据库),我将如何做呢?我读过有一些用于数据库模拟的框架。我应该使用其中之一吗?你用哪个?
下一个问题:你真的认为这是正确的做法吗?我的意思是:在我的项目中,BL 通过实体框架与数据库接口。因此,例如,当调用 BLL 中的方法“UpdateItem”时,它会执行一些操作,然后保存 ObjectContext。这个 ObjectContext 是我需要在我的 BL 中删除的实体框架依赖项。但是我应该用这种方法测试什么?如果不一起测试 DAL,我真的无法理解对 BL 层进行单元测试......你能给我举个例子吗?
非常感谢您的努力!
马可