2016-07-11 8 views
1

У меня есть очень простой тест блока:Есть ли способ AutoWire WebApplicationContext в тесте управляет Mockito

@RunWith(MockitoJUnitRunner.class) 
public class RestControllerTest { 

    protected MockMvc mockMvc; 

    @Autowired 
    WebApplicationContext wac; 

    @InjectMocks 
    protected RestController restController; 

    @Mock 
    protected UserService mockUserService; 

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


     } 
    } 

Я застрял на выяснение того, как Autowire WebApplicationContext в вышеупомянутом тесте. Пожалуйста, кто-нибудь поможет мне, как это сделать.

P.S. Я использую MockitoJUnitRunner. Я не уверен, что это имеет значение или нет. Но я новичок в Spring и Mockito, поэтому не знаю много о каких-либо технологиях.

+0

Это похоже на дубликат сообщения http://stackoverflow.com/questions/2457239/injecting-mockito-mocks-into-a-spring-bean и http://stackoverflow.com/questions/19808326/how- to-inject-a-mock-in-a-spring-context – amitmah

+0

BTW nice icon :) – amitmah

+0

@amitmah :-) Большое спасибо. Я пройду ответ, который вы отправили. Цените помощь. –

ответ

4

Чтобы использовать @Autowire, вам необходимо использовать Spring's JUnit runner.

@RunWith(SpringJUnit4ClassRunner.class) 

Тогда вам не нужно использовать @RunWith(MockitoJUnitRunner.class), потому что вы уже называют MockitoAnnotations.initMocks(this);. Вы в основном выбираете один или другой. Короче использовать их бегун, но когда вы не можете использовать их бегун (как в этой ситуации), вы вызываете initMocks() в методе @Before.

В конечном счете это зависит от технологий Spring, которые вы используете, чтобы решить, какие последние шаги вам нужно предпринять. Если вы используете Spring Boot, here - это их документы, которые показывают вам последние бит, необходимые для запуска теста.

+0

Нет, я не использую Spring Boot. И я попытался использовать Spring Runner, но почему-то он не справляется со следующей ошибкой: «Не удалось загрузить контекст приложения», хотя я добавил полный путь контекста, который все еще не может распознать файл и говорит «Файл не найден», это так странно, но потом я решил использовать Mockito, который отлично работал с Spring версии 4.2.6, где мне не приходилось делать что-либо в AutoWire. Но как только я понизился до весны 4.1.9, это терпит неудачу. –

Смежные вопросы