jeudi 17 août 2017

If else statement in Spock test framework

I am trying to write a test code coverage for the below scanner method i have in groovy. I am using Spock test Framework to write my test case.

I am having issues trying to write the case for the if else part. It complains that i am still missing invocations for

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

And

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

I am new to Spock. Any help is appreciated.

Groovy Code:

   void scanner() {

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

        script.sh a + b + c
    }

Spock test framework code:

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']

}

Aucun commentaire:

Enregistrer un commentaire