Книга: Программирование мобильных устройств на платформе .NET Compact Framework
Листинг 15.2. Имитация сбоев связи с целью тестирования приложения
Листинг 15.2. Имитация сбоев связи с целью тестирования приложения
//-----------------------------------------------------------------
//Глобальная переменная, которую мы хотим использовать для указания
//необходимости генерации исключений в процессе передачи данных
//-----------------------------------------------------------------
#if DEBUG_SIMULATE_FAILURES
//Переменная для хранения информация о следующем сбое
static SimulatedFailures g_failureCode = SimulatedFailures.noFailurePending;
//Список сбоев, которые мы хотим имитировать
public enum SimulatedFailures {
noFailurePending, //Отсутствуют текущие сбои, подлежащие обработке
//Имитируемые сбои:
failInNextWriteSocketCode,
failInNextWebServiceCall,
failInNextFileIODuringFileOpen,
failInNextFileIODuringFileRead
//и так далее
}
#endif //DEBUG_SIMULATE_FAILURES
//-----------------------------------------------------
//Функция, которую мы используем для передачи данных...
//-----------------------------------------------------
private void writeDataToSocket(System.Net.Sockets.Socket mySocket, byte[] dataToSend) {
//------------------------------------------------------------------
//Этот код следует компилировать лишь при тестировании сетевых сбоев
//------------------------------------------------------------------
#if DEBUG_SIMULATE_FAILURES
//Если это сбой, который мы хотим тестировать, генерировать исключение
if (g_failureCode == SimulatedFailures.failInNextWriteSocketCode) {
//Сбросить этот сбой, чтобы он не возник
//при следующем вызове этой функции
g_failureCode = SimulatedFailures.noFailurePending;
throw new Exception("Test communications failure: " + g_failureCode.ToString());
}
#endif
//Передать данные обычным образом...
mySocket.Send(dataToSend);
} //конец функции
- Имитация сбоев связи с целью тестирования отказоустойчивости приложения
- Имитация сбоев связи при помощи кода на стороне клиента
- Имитация скидок
- 7.6. Имитация гипертекста
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Речевые модули для «холодного» звонка с целью назначить встречу
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 3. Связи и миграция ключей
- 1.8 Ввод-вывод типичного приложения хранения данных
- Извлечение и возврат документов в приложениях Microsoft Office 2007
- Использование панели задач Управление документами в приложениях Office 2007
- Глава 2. Что необходимо для беспроводной связи