模拟对象的一种方法
本文关键字:一种 方法 对象 模拟 | 更新日期: 2023-09-27 18:37:01
我有一个类PhotoOrganiser
,正在尝试SortAll
对其方法进行单元测试。此方法调用类中的另一个方法 MovePhoto
。
方法是什么?使用 Moq,我已经模拟了其他类SortAll
引用,但据我所知,没有办法在不模拟对象本身的情况下只模拟对象上的一个方法。最干净的方法是创建一个覆盖MovePhoto
的新子类吗?
你不需要嘲笑MovePhoto
.您的SortAll
方法听起来应该具有易于断言的可观察结果(正在排序的照片)。
我建议再看看你的设计。也许PhotoOrganizer
类太复杂了?也许动态照片足够大,值得拥有自己的课程?考虑在方法中内联MovePhoto
用法时会发生什么情况SortAll
。我意识到考虑到应用程序目的PhotoOrganizer
似乎是一个好名字,但在 OOP 组织者中可能会尖叫违反 SRP。设计问题通常很快就会被难以编写的单元测试突出显示。
考虑到所有的事情,你都可以用其他人提到的部分模拟来解决它(是的,它需要虚拟的方法)。但这是治标不治本。