我们如何在Junit4中测试LayoutClickListener和LayoutClickEvent

时间:2017-10-26 11:08:02

标签: java junit4 vaadin7

我一直尝试从test.class

中获取此方法

我正在使用Vaadin UI。

我想要达到的部分是:

void initComponents() {
    setSizeFull();
    setMargin(true);
    setImmediate(true);

    loginHeadingView();
    getVLayout1().addLayoutClickListener(new LayoutClickListener(){
        @Override
        public void layoutClick(LayoutClickEvent event) {
            setLangView(0);
            removeHeadingView();
            removeComponent(log);
            setLangHead(0);
            initComponents();
            initValues();
        }
    });

    getVLayout2().addLayoutClickListener(new LayoutClickListener(){
        @Override
        public void layoutClick(LayoutClickEvent event) {
            setLangView(1);
            removeHeadingView();
            removeComponent(log);
            setLangHead(1);
            initComponents();
            initValues();
        }
    });

我无法达到@Override方法的一部分来测试里面的值,

我的方法是:

LayoutClickListener testListener = Mockito.mock(LayoutClickListener.class);
  testLoginView.getVLayout1().addLayoutClickListener(testListener);
LayoutClickEvent testEvent = Mockito.mock(LayoutClickEvent.class);
  testListener.layoutClick(testEvent);

这对我来说很有意义,不管它是不行的,我使用模拟的方式是对的吗?或者我们怎么做?

1 个答案:

答案 0 :(得分:0)

您要找的是spy(也称为部分模拟)。除非另有指示,否则嘲笑“伪造”所有方法。间谍使用所有原始方法,除非另有说明。

LayoutClickListener testListener = Mockito.spy(LayoutClickListener.class);