Mot*_*oSV 5 .net c# unit-testing
我有一个类,它接受一个MethodInfo实例并从中提取一些信息,但我想模拟这个类.目前很难,因为它需要一个MethodInfo,所以我的计划是为MethodInfo类创建一个包装器并在其上实现一个接口.例如:
public interface IMethodInfo
{
string Name { get; }
}
public class MethodInfoProxy : IMethodInfo
{
private readonly MethodInfo _method;
public MethodInfoProxy(MethodInfo method)
{
_method = method;
}
public string Name { get { return _method.Name; } }
}
public class MyClass
{
public MyClass(IMethodInfo method)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
另一个例子是File.Exists方法.我们的想法是创建一个IFile.Exists并将它放在一个FileProxy类上,该类只需委托给File.Exists.
由于我是整个单元测试世界的新手,我想知道这是不是一个好的方法?
您在这里有两个选择:
那些认为测试不应该改变代码的人和那些认为测试应该改变代码的人之间存在着一些宗教战争。如果您要通过创建接口进行模拟,依赖注入是必不可少的,它会导致代码具有高内聚性和松散耦合以及直观的 API。但另一种方法并不排除这些好处——它只是不那么自动。