Как макетировать статические замыкания в Groovy / Grails

Вам необходимо использовать свойство JsonPropertyAttribute.ItemConverterType :

class Example2
{
    [JsonProperty (ItemConverterType = typeof(StringEnumConverter))]
    public IList Sizes { get; set; }
}

0
задан JavaHead 25 February 2019 в 05:07
поделиться

2 ответа

findByJobIdAndParam принимает 2 аргумента:

status = StatusObj.findByJobIdAndParam(getId(), param)

Ваша заглушка занимает 1 аргумент:

StatusObj.findByJobIdAndParam(_) >> 2

Попробуйте изменить заглушку следующим образом:

[ 112]
0
ответ дан Anton Hlinisty 25 February 2019 в 05:07
поделиться

Попробуйте что-то вроде этого:

@Unroll
class JobSpec extends Specification {
    def "spec"() {
        when:
        GroovySpy(StatusObj, global: true)
        def job = new Job(id: "ID")
        def param = "test"
        1 * StatusObj.withTransaction(_) >> { Closure action ->
            action.call()
        }
        1 * StatusObj.findByJobIdAndParam(job.id, param) >> status

        then:
        job.isStale(param) == isStale

        where:
        status | isStale
        0      | false
        1      | true
        2      | true
    }
}

Здесь action - ваш status = StatusObj.findByJobIdAndParam(getId(), param) из Job класса. Как это работает, можно найти в разделах Вычисление возвращаемых значений и Выполнение побочных эффектов в документации Спока. Также обратите внимание, что я сделал Job.getId() работой, добавив поле id в класс Job. Я не уверен, как это реализовано в вашем коде

0
ответ дан Dmitry Khamitov 25 February 2019 в 05:07
поделиться