Cześć.
Mam taki problem mianowicie: w projekcie mamy zestaw testów które uderzają do serwisu zewnętrznego. Są one zrobione po to aby w przypadku gdy dostawca API coś zmieni w np. modelu/jsonie, abyśmy mieli informację że coś się zmieniło. Wiadomo jak to z komunikacją w IT jest. ;)
Problem jaki mam to taki że serwis w zależności od momentu wykonania requesta potrafi zwracać dwie różne informacje: ok
lub in_progress
i teraz moje pytanie brzmi: jak podejść do pisania testu, w chwili obecnej testy wyglądają mniej więcej tak:
@Test
public void test() {
(...)
String result = clientForExternal.send(myData);
// tu się wywala bo jak za szybko ponownie uruchomię test
// a serwis poprzedniego zapytania nie przetworzy
// to potrafi zwrócić 'in_progress'
assertEquals(result, "OK");
}
Dane wejściowe myData
dla serwisu nie mogą być generowane. Pytanie jak to ugryźć? Dopisać asercje z or
że spodziewam się potencjalnie dwóch wyników? Próbowałem drutować ze sleepem ale też, raz na 10 buildów coś się wywali.
Będę wdzięczny za sensowne pomysły i uwagi jak temat załatwić "po-bożemu". ;)