【问题标题】:Second set of brackets in JMock expectationsJMock 期望中的第二组括号
【发布时间】:2013-04-09 21:31:44
【问题描述】:

在 JUNIT 测试中,我使用的是 JMOCK。在一些示例中,我看到了类似于以下 sn-p 的代码:

        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"

但是,为什么会有两组大括号呢?为什么新的 Expectations(){}?它们是嵌套的,没有外部定义。

为什么会这样?

【问题讨论】:

  • 它只是一个带有实例初始化器的匿名内部类。

标签: java class syntax junit jmock


【解决方案1】:

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

【讨论】:

  • 所以本质上不是静态的初始化?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多