当前位置: 首页 > 知识库问答 >
问题:

使用spocks方法计数器模拟出作文?

穆宾白
2023-03-14
class TestData extends Specification{

    Foo createFoo(){
        GroovyMock(Foo){
            doSomething() >> "MOCKED!"
        }
    }
}
def "simple test"(){
    given:
    TestData testData = new TestData()
    Foo foo = testData.createFoo()

    when:
    println foo.doSomething()

    then:
    1 * foo.doSomething()
}
Too few invocations for:

1 * foo.doSomething()   (0 invocations)
[...]
def "simple test"(){
    given:
    Foo foo = GroovyMock(Foo){
        doSomething() >> "MOCKED!"
    }

    when:
    println foo.doSomething()

    then:
    1 * foo.doSomething()
}

有人知道如何在不从TestData派生testclass的情况下处理这个问题吗?

顺便说一句。我用存根返回“嘲笑!”为了表明,模拟是有效的。但是当testData创建模拟时,它并没有被“覆盖”或被称为什么。

共有1个答案

高山
2023-03-14

模拟交互必须在使用它们的规范中定义。从其他来源导入模拟,如

TestData testData = new TestData()
Foo foo = testData.createFoo()

不支持。

虽然可以在规范之外创建模拟并在以后附加它们,但不能在规范之外定义交互。

 类似资料:
  • 我尝试从以下方法创建单元测试,但我找不到一个解决方案来模拟每个方法内的调用,请您帮助我使用EasyMock为这些方法创建JUnit Test: 提前感谢

  • 使用mockito模拟一个方法会确保永远不会调用被模拟的方法吗?我有一个主类,它包含一些我想为其编写单元测试的代码,还有一个单元测试类MainTest,它包含主类的单元测试。 eg: 源类: JUnit测试(使用mockito) 这项测试失败了。为什么?

  • 我试图在测试中模拟一个调用,但我得到了一个错误,因为它调用了真正的方法,而不是模拟它。 这是我的方法 } 这是我的测试课 测试实际上调用了受保护的方法config Setter,并在设置代理时失败。帮助我理解我在这里做错了什么。

  • 问题内容: 我正在尝试使用富有想象力的Mock测试库测试Django应用程序时模拟某些东西。我似乎无法完全正常工作,我正在尝试这样做: 我究竟做错了什么? 问题答案: 啊,我对在哪里应用该补丁装饰感到困惑。固定:

  • 我有自定义的Log4j2 appender: 我想模拟: