3

我正在玩最近发布的 grails 2.3.0。不幸的是,test-app 无法识别测试。这是我为产生问题所做的。

首先,创建一个新应用并创建一个控制器:

$ grails create-app firstApp
$ cd firstApp/
$ grails create-controller foo

我从创建控制器 foo 中获得了以下文件:

| Created file grails-app/controllers/firstapp/FooController.groovy
| Created file grails-app/views/foo
| Created file test/unit/firstapp/FooControllerSpec.groovy

然后,我FooControllerSpec.groovy通过添加assert 1 == 2自动生成的方法来编辑文件void "test something"()。以下是FooControllerSpec.groovy我编辑后的全部内容:

package firstapp

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

/**
 * See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions
 */
@TestFor(FooController)
class FooControllerSpec extends Specification {

    def setup() {
    }

    def cleanup() {
    }

    void "test something"() {
        assert 1 == 2
    }
}

然后我运行以下命令:

$ grails test-app

但是,没有运行任何测试。这是该命令的输出:

| Completed 0 unit test, 0 failed in 0m 0s
| Tests PASSED - view reports in /Users/jianbao.tao/projects/grails/firstApp/target/test-reports

我的平台是 OS X 10.8.5 + grails 2.3.0 + Java 1.6.0_51 + groovy 2.1.6。谁能告诉我这里发生了什么?先感谢您。

4

1 回答 1

8

Grails 2.3.0 默认附带 spock 测试框架。因此,测试应如下所示:

void "test something"() {
    expect:
      1 == 2
}

有关 spockframework 的详细信息,请访问docs

于 2013-09-15T02:03:01.220 回答