У меня есть устройство, которое нужно поиздеваться.В зависимости от последнего установленного значения флаг состояния на устройстве изменяется.Мне нужно смоделировать это поведение.
Вот некоторый псевдокод, который не работает:
private delegate void setvalue(Value val);
...
Value lower = new Value(1);
Value higher = new Value(7);
ISweetInterface mock = setupSweetInterface();
Boolean flagreturn = false;
mock.Expect(x => x.Lower).Return(lower);
mock.Expect(x => x.SetValue(lower))
.Do(new setvalue(delegate(Value val) { flagreturn = true; }));
mock.Expect(x => x.SetValue(higher))
.Do(new setvalue(delegate(Value val) { flagreturn = false; }));
mock.Expect(x => x.CheckFlag()).Return(flagreturn);
Mockuser tested = new Mockuser(mock)
Assert.IsTrue(tested.setLowerAndCheckFlag());
Assert.IsFalse(tested.setHigherAndCheckFlag());
В зависимости от последнего установленного значения флаг на устройстве должен измениться.Я думаю, что мой делегат на самом деле не может видеть возврат.Код, который я написал, компилируется, но CheckFlag () всегда возвращает false.
Как правильно выразить это связанное поведение.