如果是Spock测试框架中的else语句

时间:2017-08-17 20:04:16

标签: testing groovy spock

我正在尝试为groovy中的下面扫描程序方法编写测试代码覆盖率。我正在使用Spock测试框架来编写我的测试用例。

我在尝试为if else部分编写案例时遇到问题。它抱怨我仍然缺少

的调用
1 * script.sh(N_COMMAND)
1 * script.sh(Node2_COMMAND + b + XYZ_NODE_COMMAND) 

并且

!PROJECT_TYPE.equals('nodejs')
1 * script.sh(a + b + XYZ_GRADLE_COMMAND)

我是Spock的新手。任何帮助表示赞赏。

Groovy代码:

   void scanner() {

        if (obj.projectType.equals("nodejs")){
            script.sh N_COMMAND
            script.sh Node2_COMMAND + b + XYZ_NODE_COMMAND
        } else{
            script.sh a + b + XYZ_GRADLE_COMMAND
        }

        script.sh a + b + c
    }

Spock测试框架代码:

def 'should scanner'() {

    given:
    config.projectType >> PROJECT_TYPE

    when:
    scanner()

    then:
    PROJECT_TYPE.equals('nodejs')
    1 * script.sh(N_COMMAND)
    1 * script.sh(Node2_COMMAND + b + XYZ_NODE_COMMAND)

    then:
    !PROJECT_TYPE.equals('nodejs')
    1 * script.sh(a + b + XYZ_GRADLE_COMMAND)

    then:
    1 * script.sh(a + b + c)

    where:
    PROJECT_TYPE << ['nodejs', 'java']

}

0 个答案:

没有答案