Чтобы исключить теги разметки:
"(?<=<pre>)(.*?)(?=</pre>)"
Я почти цитирую методы от "Работа Эффективно с Унаследованным кодом" :
ISnapshot
объект и переопределяют его в тестировании подкласса для возврата экземпляра фиктивного объекта вместо реального. Таким образом, конструктор получит правильное значение от запуска. ISnapshot
. Я не думаю, что необходимо было бы дразнить переменные члена парламента, не занимающего официального поста. Разве вся эта мысль не дразнить это, открытый интерфейс для объекта работает как ожидалось? Частные переменные являются деталями реализации, в которых не касаются насмешки.
Я не уверен, что можно сделать это. Если Вы желаете протестировать _next
тогда, Вы, вероятно, оказываетесь перед необходимостью передавать его в в качестве параметра и затем в Вашей передаче модульного теста в Фиктивном объекте, который можно тогда протестировать использование Ожидания. Это - то, что я сделал бы, если бы я пытался сделать это в Moq.
Как пример того, что я мог бы попытаться использовать платформу Moq:
Mock<ISnapshot> snapshotMock = new Mock<ISnapshot>();
snapshotMock.Expect(p => p.FreezeFrom(expectedUpdate)).AtMostOnce();
Cache c = new Cache(snapshotMock.Object);
c.Freeze(expectedUpdate);
Примечание: Я не попытался скомпилировать вышеупомянутый код. Его просто там для предоставления примера того, как я приблизился бы к решению этого.
Этот ответ мог бы быть простым, но рассмотрение кода, там какой-либо путь, которым ISnapshot.FreezeFrom(IUpdates)
не будет названным? Кажется, что Вы хотите утверждать что-то, что всегда будет верно.
, Поскольку Jason говорит, насмешка предназначена для ситуаций, где Ваш класс зависит от SomeInterface
, чтобы сделать, это - работа, и Вы хотите протестировать YourClass
в изоляции от того, какой бы ни реализация SomeInterface
Вы на самом деле используете во времени выполнения.
Возникает вопрос: каковы будут внешние видимые эффекты, если это сработает?
Что происходит со всеми этими снимками? Один из вариантов - инициализировать кэш с его первым снимком извне, скажем, в конструкторе. Другой вариант - издеваться над тем, что вызывает моментальный снимок и имеет значение вне кеша. Это зависит от того, что вам небезразлично.
Возможно, уже слишком поздно отвечать. В любом случае. У меня тоже была похожая проблема.
public class Model
{
public ISomeClass XYZ{
get;
private set;
}
}
Я потребовал установить значение XYZ в моем тестовом примере. Я решил проблему с помощью этого синтекса.
Expect.Call(_model.XYZ).Return(new SomeClass());
_repository.ReplayAll();
В приведенном выше случае мы можем сделать это следующим образом
Expect.Call(_cache.LatestSnapshot).Return(new Snapshot());
_repository.ReplayAll();