大佬教程收集整理的这篇文章主要介绍了如何使用MOQ框架在c#中模拟静态方法?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
密封/静态类/方法只能与基于探查API工具伪造,像Typemock(商业)或Microsoft痣(免费,被称为假货在Visual studio 2012旗舰版/二千〇一十五分之二千〇一十三)。
另外,您可以重构设计以抽象化对静态方法的调用,然后通过依赖注入将这种抽象提供给您的类。然后,您不仅会有更好的设计,而且可以使用Moq等免费工具进行测试。
可以使用允许可测试性的通用模式,而无需完全使用任何工具。请考虑以下方法:
public class MyClass
{
public String[] GetMyData(String fileName)
{
String[] data = fileUtil.ReadDataFromfile(fileName);
return data;
}
}
除了尝试模拟之外fileUtil.ReadDataFromfile
,您可以将其包装在一个protected virtual
方法中,如下所示:
public class MyClass
{
public String[] GetMyData(String fileName)
{
String[] data = GetDataFromfile(fileName);
return data;
}
protected virtual String[] GetDataFromfile(String fileName)
{
return fileUtil.ReadDataFromfile(fileName);
}
}
然后,在您的单元测试中,派生@H_679_11@myClass并调用它TestableMyClass
。然后,您可以覆盖该GetDataFromfile
方法以返回您自己的测试数据。
希望能有所帮助。
我最近一直在进行单元测试,并且已经使用MOQ框架和MS Test成功地模拟了各种场景。我知道我们无法测试私有方法,但我想知道是否可以使用MOQ模拟静态方法。
以上是大佬教程为你收集整理的如何使用MOQ框架在c#中模拟静态方法?全部内容,希望文章能够帮你解决如何使用MOQ框架在c#中模拟静态方法?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。