当我使用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)
}
}
答案 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
应该这样做。