我理解需要测试一个具有逻辑的类(例如,可以计算折扣的类),您可以在其中测试实际的类.
但我刚开始为一个项目编写单元测试,该项目将充当存储库(从数据库中获取对象).我发现自己正在编写一个实现ISomethingRepository
接口的"假"存储库.它在Dictionary
内部使用a 存储.它实现了接口的方法Add(Something)
和GetById(Guid)
方法.
我为什么写这个?我正在编写的任何内容在部署时都会被软件实际使用,对吧?我真的没有看到这个练习的价值.
我也建议使用我可以提前设置的模拟对象以满足某些期望.这似乎对我来说毫无意义:当然测试会成功,我嘲笑/伪造它成功!我还不确定实际软件在连接数据库时是否能正常运行......
困惑...
有人能指出我正确的方向来帮助我理解这一点吗?
谢谢!
您没有测试您的模拟对象,而是测试与其交互的其他类.因此,您可以测试控制器将保存方法调用转发到您的虚拟存储库.如果你"测试你的虚假物品"有什么问题