这似乎是一个很容易的问题,但我似乎无法找到关键字来影响我的搜索。moqing静态方法调用c#库类
我试图通过嘲笑此方法调用内的所有对象进行单元测试。我能够这样做的都是我自己创作的,除了这一个:
public void MyFunc(MyVarClass myVar)
{
Image picture;
...
picture = Image.FromStream(new MemoryStream(myVar.ImageStream));
...
}
FromStream从图像类的静态调用(C#的一部分)。所以我怎么能重构我的代码来嘲笑这一点,因为我真的不想提供一个图像流到单元测试。
我觉得像包装到一个界面的想法,如果我有多个静态调用实例通过我的代码,此解决方案不能很好地扩展。 我将不得不为每个静态调用创建一个函数。有没有办法模拟库类的静态方法? – Joe 2010-03-09 06:41:26
您只需要为不同的静态方法创建一个属性,因为您可以重复使用它们。我相信TypeMock可以使用一些IL编织来嘲弄静态方法,但它不是免费的。解耦代码是可测试的,在C#中恐怕需要很多工作。 – tarn 2010-03-09 06:47:41
经过一番思考,提供的界面和功能解决方案都很混乱,但是这个功能解决方案比创建一个新界面和类仅仅嘲弄一个静态功能花费更少的线。所以我正在用这个。感谢所有的答案。 – Joe 2010-03-10 01:35:44