Я понимаю, что это из-за недавних изменений в политике GDPR и ICANN.
https://motherboard.vice.com/en_us/article/vbpgga/whois-gdpr-europe-icann-registrar
ПРЕДУПРЕЖДЕНИЕ
Изменение поведения тупиков является запахом кода!
Это обычно указывает, что Ваши модульные тесты являются слишком сложными, являются твердыми понять и являются хрупкими, повреждаясь легко на корректных изменениях класса под тестом.
Выезд:
Так: только использование это решение, если Вы не можете избежать его . В моих глазах эта статья граничит с плохим советом - однако существуют редкие ситуации, где Вам действительно нужен он.
<час>А-ч, я изобразил его сам. Носорог поддерживает режим записи/воспроизведения. В то время как синтаксис AAA всегда сохраняет объекты в режиме воспроизведения, мы можем переключиться на запись и назад воспроизводить только для очистки поведения тупика.
Это смотрит немного hackish, однако...
public interface IFoo { string GetBar(); }
[TestMethod]
public void TestRhino()
{
var fi = MockRepository.GenerateStub<IFoo>();
fi.Stub(x => x.GetBar()).Return("A");
Assert.AreEqual("A", fi.GetBar());
// Switch to record to clear behaviour and then back to replay
fi.BackToRecord(BackToRecordOptions.All);
fi.Replay();
fi.Stub(x => x.GetBar()).Return("B");
Assert.AreEqual("B", fi.GetBar());
}
Обновление:
я буду использовать это в будущем, таким образом, вещи будут выглядеть немного более хорошими:
internal static class MockExtension {
public static void ClearBehavior<T>(this T fi)
{
// Switch back to record and then to replay - that
// clears all behaviour and we can program new behavior.
// Record/Replay do not occur otherwise in our tests, that another method of
// using Rhino Mocks.
fi.BackToRecord(BackToRecordOptions.All);
fi.Replay();
}
}