макет метода в .net

#.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 возвращается методом.