0
我不知道我会如何做到这一点。从模拟方法返回模拟
鉴于我有
public interface IFactory<T> where T : new()
{
IWrapper<T> GetT(string s);
}
public interface IWrapper<out T> where T : new()
{
void Execute(Action<T> action);
}
当我这样做
public class MoqTest
{
public void test()
{
Mock<IWrapper<basicClass>> wrapperMock = new Mock<IWrapper<basicClass>>();
Mock<IFactory<basicClass>> factoryMock = new Mock<IFactory<basicClass>>()
.Setup(p => p.GetT(It.IsAny<string>()))
.Returns(wrapperMock.Object);
}
}
我得到这个
不能
Moq.Language.Flow.IReturnsResult<TestNamespace.IFactory<TestNamespace.basicClass>>
类型隐式转换到Moq.Mock<TestNamespace.IFactory<TestNamespace.basicClass>>
。有 显式转换存在(您是否缺少演员?)
请注意,这些只是模拟的示例对象。
它似乎不考虑返回类型等效。一个是IReturnResult
,另一个是Moq.Mock
回顾这两个月后,这是相当明显的。 –