我正在使用Rhino Mocks 3.5来模拟一个需要传入两个参数的服务方法调用,并且我想要确保对象上的一个属性被正确地设置。
// Method being tested
void UpdateDelivery( Trade trade )
{
trade.Delivery = new DateTime( 2013, 7, 4 );
m_Service.UpdateTrade( trade, m_Token ); // mocking this
}
这是我的代码一部分(已经可以正常工作):
service, trade, token declared / new'd up ... etc.
...
using ( m_Mocks.Record() )
{
Action<Trade, Token> onCalled = ( tradeParam, tokenParam ) =>
{
// Inspect / verify that Delivery prop is set correctly
// when UpdateTrade called
Assert.AreEqual( new DateTime( 2013, 7, 4 ), tradeParam.Delivery );
};
Expect.Call( () => m_Service.UpdateTrade( Arg<Trade>.Is.Equal( trade ), Arg<Token>.Is.Equal( token ) ) ).Do( onCalled );
}
using ( m_Mocks.Playback() )
{
m_Adjuster = new Adjuster( service, token );
m_Adjuster.UpdateDelivery( trade );
}
有没有更好、更简洁、更直接的方法使用Rhino Mocks进行测试?我看过一些帖子,其中使用了Contraints,但我不喜欢通过字符串名称来识别属性/值。
UpdateTrade()
有没有重载?您能添加包含方法UpdateTrade()
的接口/类的定义吗? - Alexander Stepaniuk