#.net #mocking
Вопрос:
Я использую имитационное тестирование. Я хочу просто спросить, что делают mock.record() и mock.playback (). Если будет предоставлен какой-либо простой пример, он будет высоко оценен…
Ответ №1:
В разделе «запись» вы можете записать действие, например, выполнение хранимой процедуры или извлечение записей из базы данных и помещение их в таблицу данных В разделе «воспроизведение» записанное действие воспроизводится, когда этот фрагмент кода попадает.
Пример носорогов
[Test]
public void GetHtmlTest()
{
var mocks = new MockRepository();
var dal = mocks.StrictMock<DataAccess>();
var mockdatatable = new DataTable();
using (mocks.Record())
{
Expect.Call(dal.GetDataTableFromDatabase("", null)).Return(mockdatatable ).IgnoreArguments().Repeat.Any();
Expect.Call(dal.ExecuteUsingStoredProcedure("", null)).Return(true).IgnoreArguments().Repeat.Any();
}
using (mocks.Playback())
{
new SomeText(dal);
var result = SomeText.GetHtml("test","","");
Assert.AreEqual(result, string.Empty);
}
}
Вместо того, чтобы выполнять реальный вызов базы данных в SomeText.GetHtml. mockdatatable возвращается методом.