Я пытаюсь поэкспериментировать с RhinoMocks, где я должен сказать, что я новичок и, вероятно, я не вижу здесь ничего очевидного. То, что я делаю, выглядит примерно так:
[TestMethod]
public void SaveResponsibleUserFromChangeset()
{
var action = mocks.StrictMock<GenomeAction>();
var changeset = new ActionChangeset();
changeset.ResponsibleUser = new ChangeableProperty<UserIdentity>("Administrator") {IsChanged = true};
changeset.MarkAll(true);
using(mocks.Record())
{
Expect.Call(action.ResponsibleUser).SetPropertyAndIgnoreArgument();
}
using(mocks.Playback())
{
var persistor = new ActionPersistor(new MockIdentityResolver());
persistor.SaveActionChanges(changeset, action);
}
action.VerifyAllExpectations();
}
private class MockIdentityResolver : IIdentityResolver
{
public GenomeUser GetUser(UserIdentity identity)
{
var user = mocks.DynamicMock<GenomeUser>();
user.Username = identity.Username;
return user;
}
}
Цель состоит в том, чтобы иметь очень простой тест, который проверяет, устанавливает ли метод SaveActionChanges
свойство ResponsibleUser
. Как часть этого, это должно разрешить идентификацию пользователя, используя распознаватель, для которого я предоставил фиктивную реализацию. К сожалению, кажется, я не могу просто вернуть еще один макет в режиме воспроизведения, потому что он говорит (на закрывающей скобке второго использования), что Действие недействительно, когда объект (типа GenomeUser) находится в записи состояние .
Есть идеи, что вызывает проблему и как ее преодолеть?