2013-07-30 2 views
1

Мне было интересно, как мне следует вводить насмешки - у нас есть куча классов, которые выполняют вызовы на сервере, однако наша система CI не может обращаться к внешним ресурсам и, следовательно, не будет звонить на сервер , Таким образом, вызов должен быть имитирован, а жестко запрограммированные значения (например, коды ответов) должны быть возвращены.инъекции издевательств с mockito и powermocks

Итак, вот фрагмент кода:

HttpPost httpRequest = new HttPost(uri); 
    //some code here 
    try{ 
     httpRequest.setEntity(entity); 
     HttpResponse response = httpClient.execute(httpRequest); 
     ... 
    //other, irrelevant, code is here 

Итак, можно ли вводить издеваться в httpClient.execute (HTTPRequest) и вернуть жёстко прописанные объект ответа от испытательной установки?

Спасибо

+0

Это может помочь. http://johannesbrodwall.com/2009/10/24/testing-servlets-with-mockito/ – UpAllNight

ответ

2

Обычно насмешливый некоторый объект выглядит следующим образом:

public class TestClass { 

    private HttpServer server; 

    public HttpServer getServer() { 
     return server; 
    } 

    public void setServer(HttpServer server) { 
     this.server = server; 
    } 

    public void method(){ 
     //some action with server 
    } 
} 

И тестовый класс:

public class TestClassTest { 
    //class under test 
    TestClass test = new TestClass(); 

    @org.junit.Test 
    public void testMethod() throws Exception { 
     HttpServer mockServer = Mockito.mock(HttpServer.class); 
     test.setServer(mockServer); 
     //set up mock, test and verify 
    } 
} 

Вот вам несколько полезных ссылок:

 Смежные вопросы

  • Нет связанных вопросов^_^