Это хорошая идея, чтобы издеваться / заглушки в интеграционных тестах? - PullRequest
1 голос
/ 09 марта 2010

Допустим, в интеграционном тесте есть несколько запросов, некоторые из них являются локальными вызовами sphinx (например, локатор).

Если мы просто заглушим весь ответ на этот вызов sphinx, или, поскольку это интеграционный тест, мы хотим удалить весь тест без заглушки. Если это так, то как мы по-прежнему сохраняем независимость тестирования в ситуации, когда происходит сбой sphinx, нет подключения к Интернету или сервер не отвечает.

Укажите причины.

Спасибо

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

Я бы написал два уровня тестов: один модульный тест, который заглушает дорогостоящие вызовы методов. И еще один, который является интеграционным тестом.

2 голосов
/ 09 марта 2010

Я думаю, что вы ответили на свой вопрос. Если вы хотите быть изолированным от своего «сфинкса» (я полагаю, что это какая-то граница), вам лучше поиграть с ним и запустить все остальное, как обычно, как интеграционный тест. Таким образом, как вы сами сказали, вы можете проверить потерю соединения и другие непредвиденные ситуации.

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

Если ваша проблема со сфинксом в том, что он работает где-то еще. возможно, в Интернете, и это не под вашим контролем, вы можете рассмотреть возможность использования fakeweb. Это позволяет вам отлавливать запросы, которые идут в Интернет и отвечать предопределенными ответами. Если ваш сервер sphinx находится где-то еще, вы можете просто перехватить системный запрос и дать ему ответ, который вы хотите для своего теста. Таким образом, вам не нужно писать макет, и вы все равно можете использовать (и тестировать) тот же фрагмент кода, который обычно отправляет запрос.

Если это может быть полезно в вашем случае, просто посмотрите на официальную страницу . Для меня это сделало намного проще.

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