Я пытаюсь выяснить, почему некоторые из моих тестовых случаев (с использованием RhinoMocks 3.6 Build 20) не работают, и я сузил проблему до следующего минимального модульного теста:
public interface ITest
{
string Something { get; }
}
[Test]
public void TestStub()
{
var mockery = new MockRepository();
var testItem = mockery.Stub<ITest>();
testItem.Stub(x => x.Something).Return("Hello");
Assert.AreEqual("Hello", testItem.Something);
}
Это не так с сообщением:
Expected: "Hello" But was: null
Есть идеи, что я здесь не так делаю?Я нашел несколько примеров на SO и Rhino Wiki о том, как заглушить свойства, доступные только для чтения, и, насколько я могу судить, это должно работать нормально.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Исходя из рекомендаций sll ниже, я попытался заменить
testItem.Stub(x => x.Something).Return("Hello");
на
testItem.Expect(x => x.Something).Return("Hello");
, и проверка все равно не прошла таким же образом.
Редактировать 2: Я получил эту работу, добавив строку
mockery.ReplayAll();
перед Assert - но я подумал, что это больше не требуется (из вики: "Mocks / stubs возвращены из MockRepository.GenerateMock () и MockRepository.GenerateStub () возвращаются в режиме воспроизведения и не требуют явного перехода в режим воспроизведения. ")