【发布时间】:2019-06-09 11:36:06
【问题描述】:
我想监视 NSubstitute 中模拟接口的模拟方法的返回值。我得到Received 函数的返回值,但它总是返回null。
public interface IFactory
{
object Create();
}
public interface IMockable
{
object SomeMethod();
}
public class Mockable : IMockable
{
private readonly IFactory factory;
public Mockable(IFactory factory)
{
this.factory = factory;
}
public object SomeMethod()
{
object newObject = factory.Create();
return newObject;
}
}
public class TestClass
{
[Fact]
void TestMethod()
{
var factory = Substitute.For<IFactory>();
factory.Create().Returns(x => new object());
IMockable mockable = new Mockable(factory);
object mockableResult = mockable.SomeMethod();
object factoryResult = factory.Received(1).Create();
Assert.Equal(mockableResult, factoryResult);
}
}
我希望 mockableResult 和 factoryResult 相等,但 factoryResult 是 null。
【问题讨论】:
标签: c# unit-testing nsubstitute spy