Я использую Spring 3 MVC / рамки безопасности.
Я создал класс Controller, который имеет ссылку на хранилище для загрузки данных. Класс аннотируется @Controller
, класс репозитория аннотируется @Repository
, а экземпляр репозитория - @Autowired
.
Однако, когда я пытаюсь выполнить модульное тестирование, экземпляр с автосвязью выдает исключение нулевого указателя.
Теперь я понимаю, что, поскольку это автоматическое соединение, оно должно быть в пределах весеннего контекста, чтобы его можно было найти. Но я чувствую, что если я использую @RunsWith()
, то это становится интеграционным тестом. Я действительно хотел бы разделить интеграционные тесты (используя @RunsWith
) и модульный тест для этого метода. Любые идеи о том, как я могу обойти это исключение нулевого указателя? Разве можно было бы просто создать методы получения / установки на моем классе контроллера?:
Класс репозитория:
@Repository
public class Repository{
....
}
Класс контроллера:
@Controller
public class Controller{
@Autowired
private Repository repo;
....
public String showView(){
repo.doSomething();
}
Тестовый класс:
public ControllerTest {
@Test
public shouldDoTestOfShowView(){
}
}