我如何使用Moq嘲笑图像?

它没有构造函数(总是从工厂方法生成)。

基本上我想做这样的事......

var image = new Mock<Image>();
image.Setup(i=>i.Save(someStream,ImageFormat.Jpeg);
var testableObject = new ObjectUnderTest(image.Object);

testableObject.MethodBeingTested();

image.VerifyAll();
有帮助吗?

解决方案

昨天回答了类似的问题,您可以查看这个帖子嘲笑静态单身人士

如果绝对有必要模仿这种行为,那么被禁止的方法是生成一个暴露你需要的方法的接口,用一个具体的类[有效地包装Image类]为prod实现它,并模拟接口进行测试。 / p>

听起来有点矫枉过正,但是如果你需要Mock \验证你的可测试类和Image之间的交互,那就是这样做的方法。或者,您可以将可测试类传递给Image的实际实例,然后将此实例与预期输出[标准单元测试方法]进行比较

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top