Ich habe eine Methode in Presenter, die eine Datenbank aufruft. Jetzt, wenn ich versuche, die Methode zu testen, die tatsächlich mit der Datenbank kommuniziert, gibt es mir NullPointerException
.Datenbank NullPointerException beim Testen
Wie gehen wir eigentlich mit solchen Fällen um?
public void getRoleFromSQLite(){
if ("tutor".equalsIgnoreCase(userDB.getValueFromSqlite("role",1)))
view.userRole("tutor");
else
view.userRole("student");
}
TEST:
@Test
public void getRoleFromSqliteDatabaseTest(){
Mockito.doReturn("tutor").when(userDB).getValueFromSqlite("role",1)
presenter.getRoleFromSQLite();
Mockito.verify(viewMock).userRole("tutor");
}
Ausnahme:
java.lang.NullPointerException
at com.dolevel.level.db.UserDB.getValueFromSqlite(UserDB.java:130)
at com.dolevel.level.presenters.UserProfileScreenPresenter.getRoleFromSQLite(UserProfileScreenPresenter.java:28)
at com.dolevel.level.UserProfileScreenPresenterTest.getRoleFromSqliteDatabaseTest(UserProfileScreenPresenterTest.java:53)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
Prüfung der Nullwert aus der zunächst prüfen, die Null wie Datenbank kommen, wenn (userDB.getValueFromSqlite ("Rolle", 1)! = Null) { if ("Tutor" .equalsIgnoreCase (userDB.getValueFromSqlite (“ Rolle ", 1))) view.userRole (" tutor "); sonst view.userRole ("Schüler"); – param
Bitte lesen Sie über [MCVE]. Wir können Ihnen nicht sagen, warum Ihr Testcode eine Ausnahme auslöst, wenn Sie den gesamten Setup-Teil Ihres Komponententests weglassen. Sie zeigen uns nur Teile wesentlicher Elemente. Darüber hinaus: lesen https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-fix-it – GhostCat
Ich sehe nicht, dass Sie mein Problem verstanden haben, kann mein schlechtes ich sein havent kurz erklärt. Das Problem ist, ich habe eine Methode im Presenter, die Datenbank ruft und auf Antwort ruft es Methode auf View. Als ich anfing, Moderatoren zu testen, erlaubte mir diese UserDB nicht, das zu tun, was ich will und gibt NullPointerException. – Jay