2016-03-28 2 views
0

Ich bekomme einen Nullwert, wenn ich versuche, die Dao-Schnittstelle zu injizieren. Beispiel Code hier, wenn ich ein Testfälle schreibe.Warum bekomme ich Null-Wert, wenn ich das Objekt verspotten oder injizieren?

@Mock 
private ServiceUriLocator serviceLocator; 
@Mock 
private SessionDao sessionDao; 
ActiveSession session; 
AccountData accountdata; 
@InjectMocks 
Account account 

Dieser Above-Code, wenn ich innerhalb Methode verwenden wie

@Test 
public void testActivate() 
{ 
    Response response=account.activate(accountdata). 
} 

private Accountdata accountdata(){ 
accountdata.setFirstName("Employee_name"); 
accountdata.LastName("Employee_Last_Name"); 
return accountdata; 
    } 

In obigem Code Kontowert ist null, deshalb i Null-Zeiger Ausnahme bin immer. Jeder kann erklären, warum ich null Wert für die Injektion des Scheinwertes bekomme.

Antwort

0

Beim Ausführen eines Testfalls mit Mock-Frameworks gibt es viele Faktoren.

  1. Ist Runner-Setup? Mit welchem ​​Läufer fährst du? Es muss MockitoJunitRunner sein, die hilft, mit Mocks zu laufen
  2. when Anweisung wird auf dem gleichen Mock-Objekt geschrieben? Dies muss mit dem gleichen Mock-Objekt übereinstimmen
  3. Stimmt die Eingabezeichenfolge/Daten mit der when-Anweisung überein? . Dies hat gleichen Eingang

wenn (service.execute ('hallo')) sein thenReturn();

unterscheidet sich von

wenn (service.execute ('hallo')) thenReturn (.);

  1. Wo ist die when geschrieben? setup - @Before Level oder Testmethode?

Die globalen Aussagen geschrieben gilt für alle Prüfverfahren, so vorsichtig sein, während Sie die when Aussagen im @Before Verfahren machen.

Dies sind einige der Debug-Punkte.

+0

Diese sind Debugging-Faktor was ist Null-Wert? – Ankit

+0

@Ankit, der Punkt hier ist, mit all diesen Schritten zu überprüfen. Erwägen Sie die Neuformatierung Ihrer Frage, um weitere Details hinzuzufügen. – VinayVeluri

Verwandte Themen