我正在开发一个目前有 60 个程序集的大型解决方案。有许多程序集定义了解决方案的通用部分,然后是系统的一些入口点程序集。
TDD 目前几乎是不可能的,因为最低域层中的单行更改会强制重建几乎整个解决方案,因为测试程序集引用了解决方案的各个层。
什么是最佳实践,将构建时间从目前的 75 秒缩短到更长 可接受的 5 秒左右?这将使 TDD 再次可行。
在进行单元测试时,一些类需要由其他程序集的接口(interface)定义的模拟,因此必须在测试程序集中引用。因此,对其他程序集的单一引用并不总是可行的,除非是在解决方案的最低级别。
最佳答案
恕我直言,问题出在这里:“因为测试程序集引用了解决方案的各个层。”
每个要测试的组件都应该有一个测试组件。
当您仍然在每个测试程序集中引用许多程序集时,您会遇到不同的问题:您正在创建集成测试。这不是您想要在 TDD 中执行的操作。
除了更新你的问题:
通常,您会在另一个程序集中定义接口(interface)而不是实现。因此,对低级别类的实现的更改应该不会影响使用这些接口(interface)的更高级别的类...
关于c# - 由于编译速度慢,使用大型 C# 解决方案的 TDD 几乎不可能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028882/