我目前正在尝试为我的grails应用程序编写一些单元测试。当我运行测试时,我得到
Compilation error compiling [unit] tests: startup failed:
C:\Users\adam\Dropbox\NetBeansProjects\Assignment\test\unit\Assignment\FixtureControllerTests.
groovy: 20: Only classes and closures can be used for attribute 'value' in
@grails.test.mixin.TestMixin
@ line 20, column 12.
@TestMixin(GrailsUnitTestMixin)
我不知道为什么我得到这个错误。
我的代码是:
package Assignment
import grails.test.mixin.Mock
import grails.test.mixin.TestFor
import grails.test.mixin.TestMixin
@TestFor(FixtureController)
@Mock(Fixture)
@TestMixin(GrailsUnitTestMixin)
class FixtureControllerTests {
@Test
public void testAddingFixture() {
params.hometeamid = 1
params.awayteamid = 2
params.linkCount = 1
params.link0 = "http://www.google.com"
params.name0 = "Google"
params.place = "Rotherham"
params.date = new Date()
controller.createFixture()
}
}
最佳答案
这是测试的样子:
package assignment //considering lowercase for package name
import grails.test.mixin.Mock
import grails.test.mixin.TestFor
@TestFor(FixtureController)
@Mock(Fixture) //Assuming Fixture is a domain object you are working with
class FixtureControllerTests {
void testAddingFixture() {
params.hometeamid = 1
params.awayteamid = 2
params.linkCount = 1
params.link0 = "http://www.google.com"
params.name0 = "Google"
params.place = "Rotherham"
params.date = new Date()
controller.createFixture()
//assert something
}
}
我相信您使用的是Grails 2.2。*或更低版本,并且该版本中用于测试的模板具有
TestMixin
,后来在较新的版本中将其替换为TestFor
。最新版本默认情况下使用spock。
关于unit-testing - Grails单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391233/