PowerMockito Moqueur whenNew pas de prise d'effet

Description:

Je n'arrive pas à avoir mes talons ou se moque de prendre effet dans la classe, j'ai testé. Je suis en train d'utiliser le whenNew action afin que je puisse se moquer d'un retour de l'objet, puis de simuler une opération sur un objet avec une valeur de retour.

J'imagine que ses quelque chose de simple, je suis absent, mais de ne pas le voir.

SOLUTION: a l'Origine, j'ai été en cours d'exécution avec MockitoRunner.class et d'être modifiés à PowerMockRunner.class. Le Code ci-dessous reflète la solution.

Pots sur le chemin de classe:

  • powermock-mockito-1.4.11-full.jar
  • mockoito-all-1.9.0.jar
  • javassist-3.15.0-GA.jar
  • junit-4.8.2.le fac a
  • objensis-1.2.jar
  • cglib-nodep-2.2.2.jar

DE LA CLASSE DE TEST

   import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.powermock.api.mockito.PowerMockito;
    import static org.powermock.api.mockito.PowerMockito.*;
    import org.powermock.core.classloader.annotations.PrepareForTest;
    import org.powermock.modules.junit4.PowerMockRunner;
    import static org.mockito.Matchers.any;
    @RunWith(PowerMockRunner.class)
    @PrepareForTest(ClassA.class)
    public class ClassATest {

        @Test
        public void test() throws Exception
        {
                String[] returnSomeValue = {"PowerMockTest"};
                String[] inputValue = {"Test1"};
                ClassB mockedClassB = mock(ClassB.class);
                whenNew( ClassB.class).withNoArguments().thenReturn( mockedClassB );
                when( mockedClassB, "getResult", any(String[].class) ).thenReturn(returnSomeValue);       

                IClassA classUnderTest = new ClassA();
                String[] expectedValue = classUnderTest.runTest(inputValue);      
        }

    }

Classe Une Mise En Œuvre

public class ClassA implements IClassA {

    @Override
    public String[] runTest(String[] inputValues) {

        String[] result;
        IClassB classB = new ClassB();
        result = classB.getResult(inputValues);

        return result;
    }

} 
mis à jour.

OriginalL'auteur haju | 2012-08-14