Поврежденный DataSet в .NET для тестирования на сбой - PullRequest
1 голос
/ 23 марта 2010

Кто-нибудь знает способ создания DataSet, чтобы при вызове GetXml() на DataSet я получал исключение? Я пытаюсь написать несколько тестов на неудачу для этого сценария, и мне трудно. Возможно ли это?

Ответы [ 5 ]

3 голосов
/ 23 марта 2010

Можете ли вы написать подкласс DataSet таким образом, чтобы его getXml () предсказуемо генерировал исключение?

1 голос
/ 23 марта 2010

Не могли бы вы передать нулевой объект DataSet тем функциям, которые вызывают GetXML? : -)

1 голос
/ 23 марта 2010

Это похоже на тестирование исключений для вызовов ToString(). Некоторые вещи не нуждаются в тестировании на сбой.

Вы получите исключения при создании / добавлении к DataSet, поэтому, если у вас есть DataSet в памяти, которая еще не вызвала исключение, она всегда будет иметь структуру, которая позволяет GetXml() работать без исключения. .

Обновление: похоже, вы можете заставить его выдавать исключение, если у вас есть две таблицы с отношением один-ко-многим между ними, настройте адаптер для выбора нескольких строк из дочерней таблицы с информацией о родительской таблице, включенной в их, а затем позвоните GetXml().

1 голос
/ 23 марта 2010

Согласно документации, метод DataSet.GetXML не генерирует исключения.

Может возвращать пустую строку или ноль (хотя в документах об этом нет) , но не выдает исключений .

Вы можете избежать исключений путем первой проверки наличия в результирующем наборе данных каких-либо ошибок ( DataSet.HasErrors ) или даже проверки всех таблиц (DataTable.HasErrors) и каждая строка (DataRow.HasErrors)?

0 голосов
/ 23 марта 2010

Вы можете просто сгенерировать исключение, которое выдает поврежденный набор данных, чтобы эмулировать проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...