2016-04-11 13 views
1

Mikro hizmetlerle çalışıyorum ve bunun için entegrasyon testi yazmak istiyorum. Mikroservislerim no. 9000, 9001. Bu yüzden 9000 numaralı portlarımı test etmek istiyorum ancak 9001'de çalışan servisimi dahili olarak çağırıyorum, bu yüzden bağlantı reddedildi hatası alıyorum, 9001'e isabet eden belirli çağrılarla dalga geçmek istiyorum. play-mockws ve wiremock'u denedim.Entegrasyon testinde harici web servis çağrılarını çalma Play 2.4.X

cevap

1

rest-client-driver'a bir göz atın - bu, HTTP üzerinden çağrılabilen harici servislerle uğraşmanıza izin verir.

libraryDependencies += "com.github.rest-driver" % "rest-client-driver" % "1.1.44 

test sınıfa aşağıdaki ekleyin:

bağımlılık ekleyin. her test yöntemi için

@org.junit.Rule 
public ClientDriverRule clientDriver = new ClientDriverRule(9001); 

, daha sonra clientDriver üzerinde beklentilerini belirler - @Rule açıklama testleri arasında istemci sürücüsü sıfırlanması ilgilenir.

@Test 
public void testFoo() { 
    clientDriver.addExpectation(onRequestTo("/service/echo") 
           .withMethod(Method.POST) 
           .withBody("foo", 
             "text/plain"), 
           giveResponse("bar")); 

    // ...the rest of your test 
} 
+0

Bu "beklenmedik istek (ler):" hatası aldım, çünkü bunun nedeni tam olarak aynı isteği oluşturmamı istiyor. (ör. başlıklar, içerik türü, bağlantı: "canlı tutma", kullanıcı aracısı: "AHC/1.0", kabul edin: "*/*") –

+0

'ClientDriverRequest ', oluşturucu modelini izler, böylece yalnızca bir tane yazabilirsiniz. isteğin tüm boilerplate'i uygulamak ve daha sonra test yöntemlerine özellikler eklemek için yöntem. –

+0

Bu istenmeyen verileri istekte nasıl azaltılacağı gibi herhangi bir referans verebilir misiniz? –

İlgili konular