Носорог ААА ожидание внутри ожиданий

Можно ли смоделировать следующую ситуацию, используя синтаксис 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 ответ

Вы не можете установить ожидания для лямбд из-за того, как они обрабатываются компилятором. Смотрите: http://weblogs.asp.net/psteele/archive/2010/06/18/rhino-mocks-lambdas-and-expectations.aspx

Другие вопросы по тегам