Насмешка DataReader и получение Носорога Насмешки. Исключения. ExpectationViolationException: IDisposable. Расположите (); Ожидаемый № 0, Фактический № 1

Я предполагаю для поддержки базовых понятий функционального программирования, Вам нужны закрытия. Делает код более изящным и компонуемым с поддержкой закрытия . Кроме того, мне нравится идея раздать строки кода как параметры к функциям.

11
задан Bob The Janitor 24 November 2009 в 21:18
поделиться

1 ответ

Я предлагаю вы переписываете тест с использованием синтаксиса AAA и интерфейса ( IDataReader ) вместо конкретного типа ( SqlDataReader ):

// Arrange
IDataReader reader = MockRepository.GenerateStub<IDataReader>();
reader.Stub(x => x.Read()).Repeat.Once().Return(true);
reader.Stub(x => x.Read()).Return(false);
reader.Stub(x => x["City"]).Return("Boise");
reader.Stub(x => x["State"]).Return("State");
reader.Stub(x => x["LAT"]).Return(100);
reader.Stub(x => x["LON"]).Return(-100);

// Act
var myCities = new List<CityState>();
using (reader)
{
    while (reader.Read())
    {
        CityState myCity = new CityState
        {
            City = reader["City"].ToString(),
            State = reader["State"].ToString(),
            Lat = Convert.ToInt32(reader["LAT"]),
            Lon = Convert.ToInt32(reader["LON"])
        };
        myCities.Add(myCity);
    }
}

// Assert
Assert.AreEqual(1, myCities.Count);
Assert.AreEqual("Boise", myCities[0].City);
...
10
ответ дан 3 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: