我将如何使用 Moq 模拟图像?
它没有构造函数(总是从工厂方法生成)。
基本上我想做这样的事情......
var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);
testableObject.MethodBeingTested();
image.VerifyAll();
最佳答案
昨天回答过类似的问题,大家不妨看看this thread on mocking a static Singleton .
如果绝对有必要模拟这种行为,那么禁止的方法是生成一个暴露你需要的方法的接口(interface),用一个具体的类[有效包装图像类]实现它用于生产,并模拟接口(interface)进行测试。
这听起来有点矫枉过正,但如果您需要模拟\验证可测试类和 Image 之间的交互,那就是这样做的方法。或者,您可以只将可测试类传递给 Image 的实际实例,然后将该实例与预期输出进行比较 [标准单元测试方法]
关于c# - 模拟 System.Drawing.Image 与最小起订量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607499/