【发布时间】:2020-01-01 03:58:35
【问题描述】:
我想在一些从系统类调用方法的 C# 类上运行单元测试。具体来说,在这种情况下,Image.FromFile(); 当我构建我的主项目时,一切都编译并运行顺利,但是当我尝试运行这些自动化测试时,它说它找不到系统类。我如何帮助它“找到”我的主项目很容易找到的这些系统类?
我已尝试通过解决方案资源管理器添加对测试项目的引用,但程序集类神秘地不在可供选择的依赖项列表中。
这是单元测试:
[TestMethod]
public void initTest1()
{
Assert.IsNotNull(new Managers());
}
这是 Managers 构造函数:
public Managers()
{
//...//
Image image = Image.FromFile("exit.png");
//...//
}
我希望测试能够运行,但它却给了我这个错误:
Message: Test method ManagersTest.initTest1 threw exception:
System.IO.FileNotFoundException: Could not load file or assembly 'System.Drawing.Common, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
【问题讨论】:
-
你应该把它模拟成它自己的服务。
-
@DanielA.White 你的意思是写我自己的模拟
Image类和FromFile()方法? -
将其包装到自己的服务中。
-
@shieldgenerator7 您的代码与第 3 方实现问题紧密耦合,这使得孤立地测试您的代码变得困难。考虑重构代码以通过抽象来解耦这些问题。
-
@DanielA.White “将其包装到自己的服务中”是什么意思?把它放在自己的
namespace?
标签: c# visual-studio unit-testing visual-studio-2017