Я использую Android SDK и junit4 + Mockito для модульного тестирования. Скажем, у меня есть класс, как это в моем приложении:Отказывание класса присваивает nulls полям @NonNull (Android)
public class Container{
@NonNull private Set<String> values = new HashSet<>();
public void addValue(String value) {
values.add(value);
}
@NonNull
public Set<String> getValues() {
return values;
}
}
И у меня также есть модульный тест с Mockito который выглядит следующим образом:
public class ContainerTest {
private Container container;
@Before
public void before() {
container = mock(Container.class);
}
@Test
public void shouldAddValue() {
container.add("test_value");
assertTrue(container.getValues.contains("test_value"));
}
}
Этот тест на самом деле не будет работать на линии «container.add ("test_value");» потому что макет (Container.class) создает класс, в котором значения поле фактически установлен в нуль, так values.add (значение) в AddValue() метод выдает NPE. Я мог бы добавить нулевую проверку в addValue(), чтобы исправить это, но это кажется абсурдным, поскольку значения уже объявлены не равными нулю.
Есть ли способ сделать Mockito уважением @NonNull аннотации и правильно инициализировать поле?
Эй, спасибо. Я пошел с первым вариантом, насмешливым методом getValues (). –
@ АнтонЧеркашин рад помочь. Спасибо за тик –