Grails 3升级测试问题

时间:2016-05-12 17:10:47

标签: grails integration-testing grails-plugin

当我使用Grails 3中的Build-Test-Data插件运行测试时,我看到以下错误。

groovy.lang.MissingMethodException: No signature of method: com...Item.save() is applicable for argument types: () values: [] Possible solutions: last(), wait(), any(), saveAll([Ljava.lang.Object;), saveAll(java.lang.Iterable), last(java.lang.String)

这通常是.save().build()我不是测试大师,所以任何人都知道是什么?

更新

示例看起来像这样......

import grails.buildtestdata.mixin.Build

@Build(Author)
class AuthorUnitTests {

    void testAuthorStuff() {
        def author = Author.build()
        ...
    }

}

我的代码看起来像......

@TestFor(Item)
@Build([Item])
class ItemSpec extends Specification
{
  ...
  def "Blah Blah"() {
        given:
            Item i = Item.build(id: 1)
  }
}

1 个答案:

答案 0 :(得分:0)

Grails 3.1.1下面的单元测试通过:

package com.example

import grails.test.mixin.TestFor
import spock.lang.Specification
import grails.buildtestdata.mixin.Build

@TestFor(Item)
@Build(Item)
class ItemSpec extends Specification {

    void "test something"() {
        expect:
        Item.build(name: 'Test').name == 'Test'
    }
}

的build.gradle

compile 'org.grails.plugins:build-test-data:3.0.0'

一旦插件GAV添加到build.gradle

,请确保构建/编译应用程序
gradlew build

应该这样做。