/ / Писане на тест за предотвратяване на промени в подписването на метода - Java, тестване на единици, тестване

Писане на тест за предотвратяване на промени в подписа на метода - java, тестване на единици, тестване

При изграждането на SDK е най-добре да не го правитеда променяте подписите на метода, така че да не прекъсвате клиентите си (включително име и параметри).

Отговори:

3 за отговор № 1

Използвайки отражението на java, можете да проверите методите на класа. След това можете да потърсите метод на конкретен подпис и да пропуснете твърдение, ако този метод не е намерен в класа.

Например, за да потвърдите наличието на следния метод:

public class SO {

public Integer foo(String bar) {
System.out.println("foo");
return 0;
}
}

Можете да използвате следния тест:

public class SOTest {

@Test
public void testFooMethodExists() {
try {
Class<SO> clazz = SO.class;
Method method = clazz.getMethod("foo", String.class);
Class<?> returnClass = method.getReturnType();
Assert.assertTrue("foo method returns the wrong type.",
returnClass.equals(Integer.class));
} catch (NoSuchMethodException | SecurityException e) {
Assert.fail("foo method is missing.");
}
}

}

Това е много прост пример, но може лесно да бъде разширен, за да се търсят по-сложни сигнатури за методите.