JMock期望中的第二组括号

时间:2013-04-09 21:31:45

标签: java class syntax junit jmock

在JUNIT测试中,我正在使用JMOCK。在某些示例中,我看到的代码类似于以下代码段:

        mock.checking(new Expectations(){
            {
                allowing(tmp).assign(
                        with(any(String.class)),
                        with(any(String.class)),
                        with(any(Integer.class)),
                        with(any(Boolean.class)));
                will(returnValue("BLAH"));
            }
        });

我了解tmp是一个由JMOCK嘲笑的类,它将从assign返回"BLAH"

但是,为什么有两组花括号?为什么新的期望(){}?它们没有外部定义而嵌套。

为什么会这样?

1 个答案:

答案 0 :(得分:3)

这被称为一种称为double-brace initialization的技术。第一组创建一个匿名内部类,第二组创建实例初始化(而不是静态初始化)。在这种情况下,这允许您创建Expectations对象并在线进行一些设置工作。