Параметр модели в методе испытаний Junit - PullRequest
2 голосов
/ 23 февраля 2011

Я здесь новичок и изучаю Spring-MVC и Junit.

Я пытаюсь реализовать методы тестирования с помощью Junit для этого базового метода контроллера:

public String home(Model model) {
        model.addAttribute(new Contact());
        logger.info("Welcome home!");
        return "home";
    }

И метод испытания следующий:

public void testHome() throws Exception{
        ContactsController contactsController=new ContactsController();
        Assert.assertEquals("home",contactsController.home(new Model()));
    }

Проблема в том, что, поскольку Model является интерфейсом, я, очевидно, не могу создать новый объект Model, чтобы передать его в качестве параметра к contactsController.home (...). Какие варианты вы бы мне дали? Я понятия не имею, что делать.

Спасибо

Ответы [ 2 ]

5 голосов
/ 23 февраля 2011

Вам необходимо передать реализацию Model, например ExtendedModelMap:

public void testHome() throws Exception{
    ContactsController contactsController=new ContactsController();         
    Assert.assertEquals("home",contactsController.home(new ExtendedModelMap()));
}
0 голосов
/ 29 июля 2018

Я знаю, что он такой старый ... но если у кого-то такая же проблема, просто используйте аннотацию @Mock для инициализации объекта Model.Что-то вроде:

@Mock
Model model;

@BeforeEach
void setUp() {
    MockitoAnnotations.initMocks(this);
}

, тогда просто используйте модель по вашему желанию

...