【发布时间】:2017-01-19 10:37:09
【问题描述】:
我的单元测试项目 (NUnit) 仅用于测试业务逻辑。这种逻辑的绝大部分都在我的业务逻辑项目中。我有一个包含所有这些的单独 DLL。我的应用程序是分层的,并且有一个用于 UI、服务层、业务逻辑和数据访问层的项目。
目前,UI 引用 Service.Service 引用 BL,BL 引用 DA。全部通过项目引用。
我确实有一个共享项目,所有项目都引用它。它包含 DTO 对象和一些共享的 ENUMS 和一些代码。
在我的数据访问器中,我有一个“数据库”类(例如)。它有很多数据操作方法...获取人员、更新人员等。我在同一个项目中也有一个接口 IDatabase。
在我的测试项目中,我想模拟出数据库调用。但是我的 BL 中的 Constructor 引用了数据库,所以我可以使用 IoC。为了能够从我的单元测试中模拟它——我需要有一个对数据库层的项目引用。这是正常的吗?这是因为 IoC 和调用方法需要为构造函数提供具体的类。
【问题讨论】:
标签: c# unit-testing inversion-of-control