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
回顧這兩個月後,這是相當明顯的。 –