c# - 模拟 System.Drawing.Image 与最小起订量

标签 c# unit-testing mocking moq

我将如何使用 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/

相关文章:

javascript - 跨平台 JavaScript 单元和系统测试的现状

使用 Lambda 而不是方法引用的 C# 计时器?

c# - 不使用代码删除自定义事件日志源

c# - Nunit、Asp.net MVC 4、Sql Server CE 4、错误提供程序

c# - 您将如何对数据注释进行单元测试?

php - 如何从 Laravel 正确模拟 Illuminate\Http\Request 类

mocking - Cakephp 1.3 模拟认证

java - 是否有等效的 verifyZeroInteractions() 用于验证与模拟对象交互的确切数量?

c# - 如何从类中的函数使用 C# 访问 MySQL 数据库?

c# - 添加两个可为空的整数不起作用