这个关于单元测试的问题引发了另一件困扰我的事情。在访问数据库时,我反复讨论了三种进行单元测试的方法。
- 创建模拟对象并将它们插入。这具有不需要数据库的优点,但它很耗时,而且我不确定我得到了多少投资回报。我已经进入了国际奥委会和起订量,但似乎仍然很痛苦。
- 创建设置和拆卸数据库脚本以创建已知案例并对其进行测试。同样,这可能是时间密集型的,但在大多数情况下仍然比模拟对象更容易创建。假设他们的本地主机上有 SQL 服务器,其他工作人员仍然可以运行它。
- 手动检查开发数据库并修改单元测试。密集的手动工作,但如果我有一个不变的“测试集”,它似乎工作正常。在我的机器上,至少:-)。
我知道选项 1 是进行单元测试的“正确”方式,但在这三个选项中,这可能是我使用最少的选项(尽管最新的项目是 IOC,所以这扇门对我敞开)。我意识到这在很大程度上取决于正在模拟什么以及正在测试什么,但是我在这里缺少什么?
如果上下文有帮助,我在 C# 商店,编写内部应用程序,只有少数开发人员。