0

Мне нужно создать тестовую систему, которая перехватывает все HTTP-запросы, но должна обрабатывать только несколько, после некоторых исследований я нашел this статью, в которой показано, как издеваться над HttpUrlConnection, но мне нужно адаптироваться, я хочу использовать это только для запросов, которые являются частью моего теста, другие должны проходить через Интернет, как обычно, моя попытка была вернуть разные объекты HttpUrlConnection, которые зависят от URL-адреса и, очевидно, не работали.Android-тестирование. Mocking HttpUrlConnection (частично)

public class MockURLStreamHandler extends URLStreamHandler implements URLStreamHandlerFactory 
{ 
    .............................. 
    // *** URLStreamHandler 

    @Override 
    protected URLConnection openConnection(URL u) throws IOException { 

     mConnection = new MockHttpURLConnection(u); 
     if(u.toString().equals(myTestUrl)) 
     { 
      return mConnection; 
     } 
     else 
     { 
      //this doesn't work 
      return new HttpUrlConnection(u){..} 
     } 
    } 
    ............................... 
} 

Любые идеи? после чего я должен искать?

Заранее спасибо.

+0

Считаете ли вы использование Mockito? –

ответ

0

Посмотрите на MockWebServer

Эта библиотека позволяет легко проверить, что ваше приложение делает правильно Thing , когда он делает HTTP и HTTPS вызовы. Он позволяет указать, какие ответы вернуть, а затем проверить, что запросы были сделаны как ожидаемые .

Поскольку он использует ваш полный стек HTTP, вы можете быть уверены, что вы все тестируете. Вы даже можете скопировать & вставить HTTP-ответы с вашего реального веб-сервера для создания репрезентативных тестовых примеров. Или проверите , что ваш код сохранился в неудобных ситуациях, таких как 500 ошибок или медленных ответов.