application
- это «макет» объекта. Он только претендует на то, чтобы быть «MyApplication
». Таким образом, единственное, что он может вернуть для метода ormLiteDatabaseHelper
, это null
и, таким образом, вызов getProductDao
, который будет сбой с NullPointerException
.
Если вы хотите, чтобы вернуть что-либо, то Вы должны сообщить своему издеваться, что, например, ...
OrmLiteDatabaseHelper ormLiteDatabaseHelper = ..something...;
Mockito.when(application.ormLiteDatabaseHelper).thenReturn (ormLiteDatabaseHelper);
Только тогда ваш фиктивный знать, чтобы вернуть что-то другое, чем нуль. Конечно, есть и другие способы, но для начинающих ... Возможно, вам также необходимо частичное издевательство, которое будет объяснено here, но без дополнительной информации это трудно сказать.
Кроме того, если вы пишете @Mock
, то вы должны либо использовать правильный @RunWith
аннотацию или вызвать MockitoAnnotations.initMocks(this);
вместо создания издеваться вручную через Mockito.mock
. Если вы хотите использовать позже, вам не потребуется аннотация @Mock
.
не могли бы вы также взглянуть на этот вопрос: http://stackoverflow.com/questions/34414018/cannot-instantiate-ormlite-helper-in-a-unit-test-class-in-android-studio THANKS –