user8412632
user8412632

Reputation:

Mockito NullPointerException when object of Repository is created

public class DriveInteractor implements DriveContract.Interactor {

    private final DriveRepository driveRepository;

    public DriveInteractor(Context context) {
        DriveApplication application = (DriveApplication) context.getApplicationContext();
        this.driveRepository = application.getDriveRepository();
    }

    @Override
    public List<Drive> getDrive() {

        List<Drive> drives = driveRepository.getDrives();

        return drives;
    }
}

Following is the code for my Test Class for which I am using Mockito:

@RunWith(PowerMockRunner.class)
public class DriveInteractorTest {

    @Mock
    private Context context;
    @Mock
    private  DriveRepository driveRepository;
    @Mock
    private List<Drive> driveList;

    @Mock
    private DriveApplication driveApplication;

    private DriveInteractor driveInteractor;

    @Before
    public void setUpDriveInterator(){
    MockitoAnnotations.initMocks(this);
    driveInteractor = new DriveInteractor(context);
}
.....}

I have also written a test method in my Test Class. As soon as I run my test method I keep getting a Null Pointer Exception pointing towards DriveRepository.

I even tried creating an object of my Drive POJO class in setUpDriveInterator method and adding to the arraylist, but it doesn't work:

public class DriveRepository {

    private List<Drive> drives;

    public DriveRepository(Context context) {
        drives = new ArrayList<>();
        drives.add(Drive.create(context, "ABC", "Honda"));
.....
       }
....}

Which context needs to be passed in DriveInterator for testing? Any help would be greatly appreciated.

Upvotes: 1

Views: 637

Answers (1)

Praveen Kumar Mekala
Praveen Kumar Mekala

Reputation: 638

stub your context.getApplicationContext(); piece of code in your test method.

something like below Mockito.when(context.getApplicationContext()).thenReturn(driveApplication);

Hope it is useful.

Upvotes: 1

Related Questions