我了解需要测试具有逻辑的类(例如,可以计算折扣的类),您可以在其中测试实际类。
但我刚刚开始为一个将充当存储库(从数据库获取对象)的项目编写单元测试。我发现自己正在编写一个实现ISomethingRepository
接口的“假”存储库。它在内部使用一个Dictionary<Guid, Something>
用于存储。它实现了接口的Add(Something)
和GetById(Guid)
方法。
我为什么要写这个?我写的东西在部署时不会被软件实际使用,对吧?我真的看不出这个练习的价值。
我还得到了使用模拟对象的建议,我可以提前设置它来满足某些期望。这对我来说似乎更没有意义:当然测试会成功,我已经模拟/伪造它成功了!而且我仍然不确定实际软件在连接到数据库时是否会正常运行......
使困惑...
有人可以指出正确的方向来帮助我理解这一点吗?
谢谢!