0

有人向我开枪,因为我看不到我缺少的东西,但是我的存根对象的内部属性是 null,这破坏了我的测试。

非常感谢,詹姆斯

命令服务

public void Create()
{
    var risk = _queryService.GetRisk(creatable.HeaderId);

    if(risk.HeaderId != null)  // HeaderId IS NULL??
    {
      ...
    }
}  

查询服务

public Risk GetRisk(int headerId)
{
    return _repository.GetRisk(headerId);
}

单元测试

[TestInitialize]
public void SetUp()
{
  _mockRepository = new MockRepository();
  _queryService = _mockRepository.Stub<IQueryService>();
  _commandService = new CoreCommandService(_queryService);
}

public void MyTest()
{
   var runRisk = new RunRisk { HeaderId = 10 };

   _queryService.Stub(x => x.GetRisk(199)).Repeat.Any().Return(runRisk);

   var result = _commandService.Create();
}
4

1 回答 1

0

需要使用以下方法来修复它。

MockRepository.GenerateMock<IQueryService>(); 
于 2013-08-14T10:33:19.487 回答