如何在(Spock,Grails)单元测试Taglib中模拟渲染?

尘土飞扬的

我在Grails的自定义Taglib中有一个简单的Tag,如下所示:

def Bar = {attrs, body ->
      Bar bar = Bar.get(attrs.id)
      out << render(template: '/bar', plugin: 'web-core', model: bar)
  }

我需要运行单元测试...

但是我想使用模拟渲染-RenderTagLib或GroovyPagesTemplateRenederer检查正确的模型,并给出模板的名称,而不是使用

when:
String string = applyTemplate <foo:bar id="1" />
then:
string.contains('Bar 1')

例如:我试图像这样模拟GroovyPagesTemplateRenderer:

设置:

def mock = Mock (GroovyPagesTemplateRenderer) {

        render(_,_,_,_,_) >> //something 
    }

但是render是void方法以及makeTemplate,所以我不知道该怎么做?

还是对Taglib进行单元测试的最佳方法是什么?

如果要更改Taglib的视图,输出可能会有所不同。因此,我将不得不同时更改两个单元测试(视图,tagLib)。

这就是为什么我需要分别和视图一起测试Taglib类的原因。

谢谢您的回答 ...

马丁·豪纳

您可以render()通过常规的元编程替换方法来检查参数

@TestFor(RenderTagLib)
@Mock(Bar)
class RenderTagLibSpec extends Specification {
    Map render
    Bar bar

    def setup() {
        bar = new Bar ()
        bar.save (failOnError: true)

        tagLib.metaClass.render = { Map attrs ->
            render = attrs
        }
    }

    void "bar() passes the correct parameters to render()"() {
        when:
        tagLib.bar (id:bar.id)

        then:
        render.template == '/bar'
        render.plugin == 'web-core'
        render.model == bar
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在(Spock,Grails)单元测试Taglib中模拟渲染?

来自分类Dev

如何在Spock单元测试Grails中测试catch块代码

来自分类Dev

如何在Grails中的Config.groovy中模拟值以进行单元测试

来自分类Dev

Grails 3单元测试:如何在Grails 3中进行模拟,创建模拟和需求?

来自分类Dev

在grails单元测试中模拟表单

来自分类Dev

如何在Grails 2.4中编写一个针对特征的Spock单元测试用例?

来自分类Dev

如何在Spring单元测试中快速模拟服务?

来自分类Dev

如何在AngularJS单元测试中模拟诺言的结果?

来自分类Dev

如何在Python单元测试中模拟类?

来自分类Dev

如何在角度的单元测试中模拟警报

来自分类Dev

如何在单元测试中模拟AngularFire 2服务?

来自分类Dev

如何在单元测试中模拟HttpRequest的UserAgent属性?

来自分类Dev

如何在单元测试环境中模拟browserHistory?

来自分类Dev

如何在骆驼单元测试中模拟多个组件?

来自分类Dev

如何在Angular单元测试中模拟/触发$ routeChangeSuccess?

来自分类Dev

如何在Python中模拟此单元测试?

来自分类Dev

如何在php单元测试中模拟日期?

来自分类Dev

如何在Moq的单元测试中模拟Nhibernate .ToListAsync()?

来自分类Dev

如何在笑话单元测试中模拟“ <script>”

来自分类Dev

如何在单元测试中模拟方法的结果?

来自分类Dev

如何在AngularJS单元测试中模拟诺言的结果?

来自分类Dev

如何在Angular单元测试中模拟/触发$ routeChangeSuccess?

来自分类Dev

如何在骆驼单元测试中模拟多个组件?

来自分类Dev

如何在模拟方法中对函数进行单元测试

来自分类Dev

如何在单元测试中模拟HttpRequest的UserAgent属性?

来自分类Dev

如何在单元测试中模拟Underscorejs?[angularjs]

来自分类Dev

如何在单元测试中模拟AngularFire 2服务?

来自分类Dev

如何在Perl单元测试中重用模拟对象?

来自分类Dev

如何在单元测试中模拟 formControl 值 getTime()

Related 相关文章

  1. 1

    如何在(Spock,Grails)单元测试Taglib中模拟渲染?

  2. 2

    如何在Spock单元测试Grails中测试catch块代码

  3. 3

    如何在Grails中的Config.groovy中模拟值以进行单元测试

  4. 4

    Grails 3单元测试:如何在Grails 3中进行模拟,创建模拟和需求?

  5. 5

    在grails单元测试中模拟表单

  6. 6

    如何在Grails 2.4中编写一个针对特征的Spock单元测试用例?

  7. 7

    如何在Spring单元测试中快速模拟服务?

  8. 8

    如何在AngularJS单元测试中模拟诺言的结果?

  9. 9

    如何在Python单元测试中模拟类?

  10. 10

    如何在角度的单元测试中模拟警报

  11. 11

    如何在单元测试中模拟AngularFire 2服务?

  12. 12

    如何在单元测试中模拟HttpRequest的UserAgent属性?

  13. 13

    如何在单元测试环境中模拟browserHistory?

  14. 14

    如何在骆驼单元测试中模拟多个组件?

  15. 15

    如何在Angular单元测试中模拟/触发$ routeChangeSuccess?

  16. 16

    如何在Python中模拟此单元测试?

  17. 17

    如何在php单元测试中模拟日期?

  18. 18

    如何在Moq的单元测试中模拟Nhibernate .ToListAsync()?

  19. 19

    如何在笑话单元测试中模拟“ <script>”

  20. 20

    如何在单元测试中模拟方法的结果?

  21. 21

    如何在AngularJS单元测试中模拟诺言的结果?

  22. 22

    如何在Angular单元测试中模拟/触发$ routeChangeSuccess?

  23. 23

    如何在骆驼单元测试中模拟多个组件?

  24. 24

    如何在模拟方法中对函数进行单元测试

  25. 25

    如何在单元测试中模拟HttpRequest的UserAgent属性?

  26. 26

    如何在单元测试中模拟Underscorejs?[angularjs]

  27. 27

    如何在单元测试中模拟AngularFire 2服务?

  28. 28

    如何在Perl单元测试中重用模拟对象?

  29. 29

    如何在单元测试中模拟 formControl 值 getTime()

热门标签

归档