Я пишу модульный тест для метода, который заполняет объект из таблицы данных. В одном конкретном модульном тесте я хочу проверить, как объект будет заполнен, если в datarow есть нулевое значение. Если я назначу DBNull.value для datarow, я получу исключение при выполнении теста.
Я разместил тестируемый предмет ниже -
return dt.AsEnumerable().Select(
row => new ChannelManager{ ChannelId = row.Field<int>("EventId") })
.ToList();
Тест - -
DataSet ds = new DataSet();
DataTable dt1 = new DataTable();
dt1.Columns.Add("EventId", typeof(int));
DataRow dr1 = dt1.NewRow();
dr1["EventId"] = DBNull.value;
dt1.Rows.Add(dr1);
ds.Tables.Add(dt1);
if(!test.ChannelId.HasValue)
Assert.True(true);
Но я получаю исключение, в котором говорится, что невозможно привести DBNull.Value к типу 'System.Int'