我有一个标准的 Web 应用程序,它包含一个 UI(它有一个 WebService API),它引用了一个业务层,而业务层又引用了一个基于 SQL 的 DAL。这些层很好地覆盖了单元测试,这些单元测试使用模拟来替换它们的依赖项。
我还有一个 API 库,它允许用户通过代码访问 WS(并处理许多问题,如凭据、url 等)。我想为我的库编写单元测试。
目前我能做到这一点的唯一方法是编写引用库的测试并使用我用来测试 DAL 的相同机制填充数据库。然而,这种方法显然存在缺陷,因为它没有测试我的 API 库类——它测试了整个堆栈!
如何在 WS 下插入模拟(在不同的项目中)?我目前正在使用 MBUnit 和 MOQ 进行测试。
编辑:我的单元测试目前测试两件事:
- API 正在从 WS 对象转换为我正确传递给消费者的本地对象
- 正确填充传输对象的字段