设置属性(类型接口)而不实现

时间:2013-12-24 09:31:04

标签: c# unit-testing interface moq

我正在创建一些UnitTests,并希望模拟一个返回Thing对象的服务,该对象具有实现FileInformation接口的IFileInformation属性。

如何在不编写此接口的实现的情况下填写/模拟Thing

public interface IFileInformation
{
   string Name { get; set; }
}
public class Thing
{
   public IFileInformation FileInformation { get; set; }
}

我正在使用Moq lib作为我的UnitTests。

2 个答案:

答案 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();