Frühjahr Mockito @injectmocks nicht funktioniert

Hallo, ich bin mit Mockito testen, mein Frühlings-Projekt, aber die @InjectMocks scheint nicht in der Injektion einer verspottet Leistungen in einem anderen Frühling service(bean).

Hier ist meine Frühlings-Dienst, den ich testen möchte:

@Service
public class CreateMailboxService {   
    @Autowired UserInfoService mUserInfoService; //this should be mocked
    @Autowired LogicService mLogicService;  //this should be autowired by Spring

    public void createMailbox() {
        //do mething
        System.out.println("test 2: " + mUserInfoService.getData());
    }

}

Und unten ist der service, den ich will, zu verspotten:

@Service
public class UserInfoService {
    public String getData() {
        return "original text";
    }
}

Mein test code ist hier:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/root-context.xml" })
public class CreateMailboxServiceMockTest {

    @Mock
    UserInfoService mUserInfoService;

    @InjectMocks
    @Autowired
    CreateMailboxService mCreateMailboxService;

    @Before
    public void setup() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void deleteWithPermission() {
        when(mUserInfoService.getData()).thenReturn("mocked text");

        System.out.println("test 1: " + mUserInfoService.getData());

        mCreateMailboxService.createMailbox();
    }
}

aber das Ergebnis möchte

test 1: mocked text
test 2: original text  //I want this be "mocked text", too

scheint es, dass die CreateMailboxService nicht die verspottet UserInfoService aber mit Frühling ist autowired bean.
Warum ist mein @InjectMocks funktioniert nicht?

Hinsichtlich

  • Ich glaube, Sie brauchen MockitoJunitRunner.class wenn Sie versuchen, um Sie zu verhöhnen. Auch bei der() stub, mock die Funktion, die Sie für mUserInfoService.
  • Registrieren Sie den mock-als spring-bean. Sie wird jetzt nur die bean aus dem context und es wird nicht spotten, irgendetwas (wie Sie sehen).
InformationsquelleAutor Victor Tsai | 2017-01-11
Schreibe einen Kommentar