如何使用rhino将属性存根以进行单元测试

时间:2013-08-14 09:48:01

标签: c# .net unit-testing rhino-mocks

有人开枪射击我,因为我看不到我错过的东西,但是我的存根对象的内部属性为空,这打破了我的测试。

非常感谢, 詹姆斯

CommandService

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

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

QueryService的

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();
}

1 个答案:

答案 0 :(得分:0)

需要使用以下内容来修复它。

MockRepository.GenerateMock<IQueryService>();