我正在创建一些UnitTests,并希望模拟一个返回Thing
对象的服务,该对象具有实现FileInformation
接口的IFileInformation
属性。
如何在不编写此接口的实现的情况下填写/模拟Thing
?
public interface IFileInformation
{
string Name { get; set; }
}
public class Thing
{
public IFileInformation FileInformation { get; set; }
}
我正在使用Moq lib作为我的UnitTests。
答案 0 :(得分:4)
好吧,这比我想象的容易。
使用Moq模拟界面。
Mock<IFileInformation> fileInformation = new Mock<IFileInformation>();
fileInformation.SetupGet(x => x.Name).Returns("whatever.txt");
Thing serviceResult = new Thing();
serviceResult.FileInformation = fileInformation.Object;
答案 1 :(得分:-1)
如果您不想创建界面,则无法在单元测试中新建Thing类。
var sut = new Thing();