【发布时间】:2019-05-31 19:13:22
【问题描述】:
在下面的代码中,我使用Moq 编写示例测试。我创建了一个模拟对象,我正在使用SetupProperty 设置要为该属性返回的假值。但我在_sharedService.VerifyAll() 行遇到了上述错误。
我知道我遗漏了一些微不足道的东西,但不确定是什么。有人可以帮忙吗?
[TestFixture]
public class ObjectFactoryTests : TestFixtureBase
{
private Mock<ISharedService> _sharedService;
[SetUp]
public void SetUp()
{
_sharedService = new Mock<ISharedService>(MockBehavior.Strict);
}
protected override void VerifyAll()
{
_sharedService.VerifyAll();
}
private IObjectFactory GetObjectFactory()
{
return new ObjectFactory(sharedService.Object);
}
[Test]
public void ObjectFactory_GenerateObject_Request_Success()
{
MyObject1 request = something;
var requestData = new Dictionary<string, object>();
requestData.TryAdd(Cache.Client, Constants.CLIENT);
_sharedService.SetupProperty(m => m.RequestData, requestData);
var factory = GetObjectFactory();
var actual = factory.GenerateObject(request);
Assert.That(actual.Client, Is.EqualTo(requestData[Cache.Client].ToString()), Constants.CLIENT);
VerifyAll();
}
}
public class ObjectFactory : IObjectFactory
{
ISharedService SharedService = something;
public MyObject GenerateObject(MyObject1 request)
{
MyObject obj = new MyObject(request);
obj.Client = SharedService.RequestData[Cache.Client].ToString();
return obj;
}
}
【问题讨论】:
-
代码看起来不完整。 1.在GetObjectFactory()中调用的类ObjectFactory()没有构造函数。 2. return new ObjectFactory(sharedService.Object) 行,sharedService 没有下划线。请把完整的代码贴出来,我们才能给出肯定的答案。