Вопрос к тестировщикам
Ну и как же ты это - без понятия - собираешься эмулировать?
Ну во-первых, я ничего не собираюсь эмулировать. Это был твой пример и я не собираюсь разбираться в том, как работают твои компоненты.
Во-вторых, никому не надо эмулировать работу компоненты, достаточно эмулировать ответы. Т.е. сеттер для ConnectionString ничего не будет устанавливать, а функция Open не будет открывать никакие сокеты, она либо просто вернется (таким образом эмулируется успешное соединение), либо кинет исключение (эмуляция ошибки). Никаких других вызовов в твоем примере не было.
В-третьих, для тестирования OracleConnection - это черный ящик и мне глубоко фиолетово как он там работает.
Нее - ты, по твоему собственному заявлению, все сделаешь сразу даже не зная что за оно там было...
Ты либо не понял
того, что я сказал, либо умышленно перевираешь мои слова.
В некоторых случаях будет получена полуоткрытая коннекция, которую, к тому же, никак не закрыть без обрыва сети...
Да и ради бога. Если ты это может узнать обращаяь к своему объекту, значит это поведение можно эмулировать.
Двумя строками выше ты указал, что не имеешь предстявления об том, что будет ответом этой компоненты на указанную ситуацию, Т.е. не можешь заменить ее фейком. Просто по незнанию внешних проявлений сторонней проблемы.
Поведение системы в указанных условиях известно тебе (ты это уже изучил), мне же совершенно до лампочки как ведет себя OracleConnection в описанных тобой условиях, я с этим компонентом никогда не работал. Ты сам привел код, который попросил обернуть во враппер, чтобы эмулировать поведение OracleConnection. Я показал тебе как это можно сделать. Только и всего.
Ну так поставлення задача - симулировать обнаруженную ошибку, Ошибка - описана - второй ИП в сети.
Это не ошибка в поведении твоей компоненты. Симулировать надо внешнюю среду, в приведенном тобой привере внешняя среда - это OracleConnection. Как работает OracleConnection (через сеть ли, или передает открывает БД напрямую с диска или соеденяется с БД через COM-порт или работается через пайпы или шаред мемори
или еще как) - не важно. Если в сети есть 2 одинаковых ИП, то задача съэмулировать поведение OracleConnection в данных условиях. Делать сеть с двумя ИП имеет смысл только для того, чтобы выяснить поведение OracleConnection в таких условиях. Для теста же, который должен работать после каждой сборки, настраивать сеть с 2 ИП - тупость.
Как ты ее будешь искать в условиях - "причина никого не интересует"?
Очень просто. Причина сбоя программы и причина возникновения проблемы - это две большие разницы. В твоем примере, причина сбоя - это 2 одинаковых ИП в одной сети. Причина возникновения проблемы - монтер Вася, который забыл вернуть измененную конфигурацию. Так вот причина позникновения проблемы никого не волнует, т.к. сегодня это может быть монтер,
а завтра админы объеденят две подсети в одну или сотрудник со воим ноутом со статическим ИП придет в переговорку в соседний корпус.
Назвать тебе причину по которой не работало и не могло работать то что было описано или ты сможешь ее обработать без этой информации?
Я не собираюсь играть с тобой в угадайку. Хочешь называй, не хочешь не называй.
Тем более, что ситуация с отсутствием доступа - решаемая.
А вот это совсем не факт. И уж тем более, с вероятностью 99,99% эта проблема не решается софтом, который должен эту проблему корректно обработать.