【发布时间】:2021-06-08 14:15:48
【问题描述】:
我有如下实现的接口和服务:
public interface IParentInterface<T> where T : class
{
T GetParent(T something);
}
public interface IChildInterface : IParentInterface<string>
{
string GetChild();
}
public class MyService
{
private readonly IChildInterface _childInterface;
public MyService(IChildInterface childInterface)
{
_childInterface = childInterface;
}
public string DoWork()
{
return _childInterface.GetParent("it works");
}
}
这是我对 MyService 类的 DoWork 方法的测试:
- 新建一个子接口的模拟对象
- 设置父接口的GetParent方法
- 将模拟对象传递给服务构造函数
- 执行 DoWork
- 期望有 resp = "它确实适用于某些东西!"但它是空的
[Fact]
public void Test1()
{
var mockInterface = new Mock<IChildInterface>();
mockInterface
.As<IParentInterface<string>>()
.Setup(r => r.GetParent("something"))
.Returns("It really works with something!");
var service = new MyService(mockInterface.Object);
string resp = service.DoWork(); // expects resp = "It really works with something!" but it's null
Assert.NotNull(resp);
}
其他信息:
- 起订量 4.16.1
- .NET 核心 (.NET 5)
- XUnit 2.4.1
【问题讨论】: