首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IntelliJ中使用Easyb或Spock在Grails项目中使用“测试一点点,代码一点”

在IntelliJ中使用Easyb或Spock在Grails项目中使用“测试一点点,代码一点”
EN

Stack Overflow用户
提问于 2012-05-28 12:34:02
回答 2查看 682关注 0票数 1

这个职位完美地描述了我最初的问题:我想遵循TDD:

  • 写一个小测试
  • 看着它失败
  • 编写足够的代码使其成功
  • 看着它成功
  • 重复

我正在IntelliJ中从事一个Grails项目。如果我只想编写普通的JUnit测试,那么上面的帖子解决了所有问题:

  • 前往/测试/单位
  • 在“Xyz扩展GroovyTestCase”类中添加一些测试代码
  • 点击移位F10
  • JUnit报告在一两秒钟内弹出

问题是,我想使用一个非常酷的“用英语描述”测试设置,比如Easyb或Spock。

我做什么好?从Grails为我创建的自动生成的测试类开始,然后把Spock的东西塞进它,这将是神奇的。显然我不能用“扩展”两次。这能给出我想做的事情的要点吗?

代码语言:javascript
复制
class Xyz extends GroovyTestCase extends spock.lang.Specification {

    //void testSomething() {
    //    fail "Implement me"
    //}

    def "length of Spock's and his friends' names"() {
        expect:
        name.size() == length

        where:
        name     | length
        "Spock"  | 5
        "Kirk"   | 4
        "Scotty" | 6
    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-28 12:42:06

扩展史波克类,而不是groovy类。您可以从UnitSpec、ControllerSpec、IntegrationSpec和其他列出的在源代码中中进行选择。斯波克会照顾好剩下的人。

票数 3
EN

Stack Overflow用户

发布于 2012-06-01 01:52:21

-Use "grails安装-模板“

-Change测试模板的内容如下:

代码语言:javascript
复制
@artifact.package@

import grails.test.mixin.*
import org.junit.*
import spock.lang.Specification

@TestFor(@artifact.testclass@)
class @artifact.name@ extends Specification {

}

-Write中的测试代码(或普通JUnit代码)

-IntelliJ->Run->编辑配置。添加JUnit类型的新配置。测试种类:<All in package/All in UnitTest directory/All in one UnitTest class/etc.>

-(快捷方式:游标在方法名称上,或类名->ctrl-shift-F10)

关于我最初的问题:回想起来,我被那篇博客文章中的“运行目录中的所有内容”挂了起来。当前IntelliJ允许您在目录或整个项目中运行所有JUnit测试。

一旦我理解了这一点,下一步就是认识到Spock测试是JUnit测试。在test/unit目录中创建一个“类Xyz扩展规范{}”类,用Spock代码填充它,并作为.JUnit。魔法!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10784749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档