我如何使用Moq嘲笑图像?
它没有构造函数(总是从工厂方法生成)。
基本上我想做这样的事......
var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);
testableObject.MethodBeingTested();
image.VerifyAll();
答案 0 :(得分:5)
昨天回答了类似的问题,您可以查看this thread on mocking a static Singleton。
如果绝对有必要模仿这种行为,那么被禁止的方法是生成一个暴露所需方法的接口,用一个具体的类[有效地包装Image类]为prod实现它,并模拟接口进行测试。 / p>
听起来有点矫枉过正,但是如果你需要Mock \验证你的可测试类和Image之间的交互,那就是这样做的方法。或者,您可以将可测试类传递给Image的实际实例,然后将此实例与预期输出[标准单元测试方法]进行比较