模拟对象的一种方法

本文关键字:一种 方法 对象 模拟 | 更新日期: 2023-09-27 18:37:01

我有一个类PhotoOrganiser,正在尝试SortAll对其方法进行单元测试。此方法调用类中的另一个方法 MovePhoto

正确的

方法是什么?使用 Moq,我已经模拟了其他类SortAll引用,但据我所知,没有办法在不模拟对象本身的情况下只模拟对象上的一个方法。最干净的方法是创建一个覆盖MovePhoto的新子类吗?

模拟对象的一种方法

你不需要嘲笑MovePhoto .您的SortAll方法听起来应该具有易于断言的可观察结果(正在排序的照片)。

我建议再看看你的设计。也许PhotoOrganizer类太复杂了?也许动态照片足够大,值得拥有自己的课程?考虑在方法中内联MovePhoto用法时会发生什么情况SortAll。我意识到考虑到应用程序目的PhotoOrganizer似乎是一个好名字,但在 OOP 组织者中可能会尖叫违反 SRP。设计问题通常很快就会被难以编写的单元测试突出显示。

考虑到所有的事情,你都可以用其他人提到的部分模拟来解决它(是的,它需要虚拟的方法)。但这是治标不治本。