Это "мутирователь возвращаемого значения" PIT (когда тип возвращаемого значения - Object), и он собирается заменить ненулевые возвращаемые значения на null и выдать исключение java.lang.RuntimeException, если не измененный метод возвратит null.
то есть измененный код:
public MyObject getTheObject(){
...
return null;
}
Теперь, что, если этот метод возвращает значение null и сверх того, что вы пытаетесь получить доступ к любому методу MyObject.В этом случае вы получите исключение нулевого указателя (исключение времени выполнения), и этот вариант использования не будет покрыт проверкой assertNotNull()
.
Таким образом, чтобы убить этот мутатор, мы можем проверить значение любого свойства.
Ответ:
assertThat(mutationTestService.getClassAObj(10).getA(),is(10));
Где getA()
- получатель ClassA{int a}
, и я пытаюсь проверить, получаю ли ято же значение, которое я передал конструктору для инициализации.