用spock盯住动作监听器

时间:2013-04-03 20:33:04

标签: java unit-testing spock

我在演讲者中有这个:

private void init() {
    view.subscribeOnButtonClick(new Clickable() {
        @Override
        public void clickPerformed() { sortArray(); }
    });
}

我想在我的测试中记住这个可点击的对象,在'when'部分触发它(模拟按钮点击)

我试过这样:

def view = Mock(ArraySorterView)
def clickable
view.subscribeOnButtonClick(_) >> { x -> clickable = x }
when:
clickable.clickPerformed()

但它不起作用。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 我需要这样写:

view.subscribeOnButtonClick(_) >> { Clickable x -> clickable = x }

因为如果没有指定type,spock会将unnamed参数视为参数列表。