Gradle игнорирует один из моих модульных тестов Спока и не говорит мне, почему - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть единичный тест Спока (спецификация) с 3 определенными тестамиДва теста выполняются нормально, но Спок или Грэдл полностью игнорируют один из них, и я не могу понять, почему.

Вот игнорируемый тест:

    def "connect to kinesis"() {

        given:

        Yaml parser = new Yaml()
        YAMLConfig config = parser.load((testConfigFileName as File).text)

        putKinesisRecordsUtil.config = config

        putKinesisRecordsUtil.putRecords(mockKinesisClient)

        1 * mockKinesisClient.putRecords(_)

        expect:

        1 == 1

    }

Наличие в этом тесте одной строки, которая определяет, игнорируется ли тест:

putKinesisRecordsUtil.config = config

Вот и все.Зачем задавать параметр в putKinesisRecordsUtil, чтобы Spock или Gradle игнорировали весь тест без предупреждения или сообщения об ошибке?Я правильно заполняю это значение?

Тест продлевает spock.lang.Specification, а остальные тесты выполняются успешно.

Я ценю любую помощь.

1 Ответ

0 голосов
/ 26 апреля 2019

Взаимодействия должны быть помещены в блок «тогда» или в любом месте перед блоком «когда». Я реорганизовал ваш тест, чтобы использовать «данный», «когда» и «тогда». Затем переместил взаимодействие в блок then.

Где разместить взаимодействия

В качестве руководства используйте метод «когда-то» для описания побочных эффектов и ожидайте описания чисто функциональных методов.

Справочная документация по Spock Framework

def "connect to kinesis"() {
    given:
    Yaml parser = new Yaml()

    when:
    YAMLConfig config = parser.load((testConfigFileName as File).text)
    putKinesisRecordsUtil.config = config
    putKinesisRecordsUtil.putRecords(mockKinesisClient)

    then:
    1 * mockKinesisClient.putRecords(_)
    1 == 1
}

Надеюсь, это поможет!

...