RhinoMock方法中的参数约束

时间:2010-03-19 11:48:24

标签: unit-testing rhino-mocks

我正在嘲笑一个存储库,它应该有一个实体用于测试场景。存储库必须基于已知的id返回此实体,并在传入其他ID时不返回任何内容。

我尝试过这样的事情:

_myRepository.Expect(item => item.Find(knownId)).Return(knownEntity);
_myRepository.Expect(item => item.Find(Arg<Guid>.Is.Anything)).Return(null);

然而,似乎第二行覆盖了第一行,并且存储库始终返回null。当测试场景仅涉及一个Id的值时,我不想模拟所有不同的可能ID(它们可能达到数百个)。

据我所知,我可以将第二行更改为第一行的否定值。但是,如果存储库必须为测试场景返回多于1个实体,那么这将变得越来越困难(以及丑陋)。

1 个答案:

答案 0 :(得分:0)

它确实对我有用。我的猜测是你不止一次地搜索你的已知身份。尝试将引用的行更改为:

_myRepository.Stub(item => item.Find(knownId)).Return(knownEntity);
_myRepository.Stub(item => item.Find(Arg<Guid>.Is.Anything)).Return(null);

让我知道它是否解决了这个问题。