犀牛模拟AAA期望值

时间:2012-06-12 14:38:17

标签: rhino-mocks arrange-act-assert

是否可以使用Rhino Mock AAA语法模拟以下情况:

// Interface
interface IFoo
{
    void ExecuteFoo( Expression<Action> action );
    void Increment(out int value); // value++
}

// Situation to mock:
var foo = new Foo();
int value = 7;
foo.ExecuteFoo( () => foo.Increment( out value ) );    

// and here is mock that needs to be remade:
fooMock.Expect( f => f.ExecuteFoo( Arg<Expression<Action>>.Is.NotNull ));
fooMock.ExecuteFoo( () => foo.Increment( out value ) );   

但不是.Is.NotNull约束,我需要传递这种期望:

fooMock.Expect(f => f.Increment(out Arg<int>.Out(8).Dummy));

我知道这看起来有点奇怪,但是让我们说ExecuteFoo是至关重要的,它必须像这样完成。

1 个答案:

答案 0 :(得分:1)

由于编译器处理它们的方式,你无法真正设定对lambdas的期望。请参阅:http://weblogs.asp.net/psteele/archive/2010/06/18/rhino-mocks-lambdas-and-expectations.aspx