代码之家  ›  专栏  ›  技术社区  ›  ant

将属性设置为模拟对象jmock

  •  1
  • ant  · 技术社区  · 14 年前

    是否可以将值赋给模拟对象?前任:

    myMockObject = context.mock(MyObject.class);
    
    myMockObject.setId("someId");
    

    我正在测试的方法到达了结尾,但结尾有一个验证该对象的方法,因此没有ID的对象被认为是无效的。我还能做些什么吗?

    我可以指定OK吗?我期待这个异常,但还是通过了测试?

    我找到了此链接,但找不到解决方案:

    http://www.jmock.org/yoga.html

    我希望日志程序抛出一个消息字符串的验证异常,以前有没有人有过这样的经验?

    我试过这个:

    context.checking(new Expectations() {
                {
    
    allowing(logger).error(with(exceptionMessage));
    
        }
            });
    

    注释 exceptionmessage消息由验证方法引发,该方法在我测试的方法末尾验证对象。

    2 回复  |  直到 14 年前
        1
  •  2
  •   ant    14 年前

    这就是我想要的答案:

    http://www.jmock.org/throwing.html

        2
  •  1
  •   codelark    14 年前

    您需要添加一个期望,使mock方法返回您期望的值:

    allowing (myMockObject).getId(); will(returnValue("someId"));
    

    这将导致getid返回您期望的值,并且由于它使用的是允许调用计数,因此如果不调用它,它不会导致测试失败。