我有一个正在单元测试的方法调用。在该方法调用中,它调用一个将抛出错误的方法,因为它正在尝试与单元测试运行时不可用的设备进行通信。有没有办法避免调用内部方法调用?
环境:IDE 中的 C# Visual Studio 2010 单元测试
如果您正在对具有外部依赖项的类进行单元测试,那么您必须使用注入的接口隔离外部依赖项。
interface IDevice
{
void Run();
}
interface IDeviceOperator
{
void Operate();
}
class DeviceOperator : IDeviceOperator
{
private readonly IDevice _device;
public DeviceOperator(IDevice device)
{
_device = device;
}
public void Operate()
{
_device.Run();
// test other stuff here
}
}
[TestFixture]
public class DeviceOperatorTests
{
[Test]
public void Test_DeviceOperator_Operate()
{
IDevice device = A.Fake<IDevice>(); // Using FakeItEasy 3rd party mocking framework syntax
DeviceOperator deviceOperator = new DeviceOperator(device);
deviceOperator.Operate();
}
}
Run Code Online (Sandbox Code Playgroud)