Mockito NullPointerException

Folgte ich dem, was @hoaz vorgeschlagen. Allerdings bin ich immer nullpointer exception

@RunWith(MockitoJUnitRunner.class)
public class GeneralConfigServiceImplTest  {

@InjectMocks private GeneralConfigService generalConfigService;
@Mock private SomeDao someDao;
@Mock private ExternalDependencyClass externalDependencyObject 

@Test
public void testAddGeneralConfigCallDAOSuccess() {
    when(someDao.findMe(any(String.Class))).thenReturn(new ArrayList<String>(Arrays.asList("1234")));

    //println works here, I am able to get collection from my mocked DAO

    //Calling the actual service function
    generalConfigService.process(externalDependencyObject)
    }
}

In meinem Code ist es so:

import com.xyz.ExternalDependencyClass;

public class  GeneralConfigService{

private SomeDao someDao;

public void process(ExternalDependencyClass externalDependencyObject){

//function using Mockito 
Collection<String> result = someDao.findMe(externalDependencyObject.getId.toString())
    }
}

Ich auch feststellen, dass DAO null war, so dass ich dies getan habe(Nur um zu erwähnen, ich hab die unten, Schritt zu versuchen, ich kenne den Unterschied zwischen springUnit und Mockito oder xyz):

@Autowired
private SomeDao someDao;


@John B Lösung die mein problem gelöst. Jedoch möchte ich erwähnen, was nicht funktioniert für mich. Dies ist meine aktuelle unit-test

@Test
public void testAddGeneralConfigCallDAOSuccess() {
    /*
    This does not work
    externalDependencyObject.setId(new ExternalKey("pk_1"));
    //verify statement works and I thought that the class in test when call the getId 
    //it will be able to get the ExternalKey object
    //verify(externalDependencyObject.setId(new ExternalKey("pk_1")));
    */

    //This works
    when(externalDependencyObject.getId()).thenReturn(new ExternalKey("pk_1"));
    when(someDao.findMe(any(String.Class))).thenReturn(new ArrayList<String>(Arrays.asList("1234")));

    ....
    //Calling the actual service function
    generalConfigService.process(externalDependencyObject)
    }


Verwiesen wird auf diese Frage :

Wie kann ich verspotte externen Methodenaufruf mit Mockito

Wie kann ich festlegen einer Eigenschaft auf eine ironisierte Objekt mit Mockito?

  • Warum sind Sie spöttisch etwas, das Sie autowiring? Es riecht wie diese sollte entweder ein reines Feder-Stil, integration-test, oder ein reines mock test.
  • Ich habe versucht zu tun, @Autowired Schritt zu, da war ich mit Ausnahme von NullPointer, aber es läuft in Ausnahme auch danach. Ich sehe, dass, wenn die someDao.findMe(someObject.getId.toString()) ausführen, löst er NICHT mein MockDao return-Anweisung, sondern versucht Sie zu bewerten someObject.getId.toString(). Wenn ich println im test für someDao.findMe es tut Rückgabe der Sammlung. Ich habe auch überprüft die debugging someDao ist bereits Eigentum in generalConfigService. Also nicht sicher, warum es bewerten und nicht nur die Rückkehr meiner Sammlung
InformationsquelleAutor Anuj | 2014-06-06
Schreibe einen Kommentar