2016-07-26 3 views
1

ich einen Test, wo die gsp den Asset-Pipeline-Tag assetPath, in Grails 2 verwendet hatte ich keine Probleme, aber in Grails 3 Ich bin ein org.grails.taglib.GrailsTagException: [SOME_GSP.gsp:184] Error executing tag <g:form>: Error evaluating expression [assetPath(src: 'SOME_PDF.pdf')] on line [60]: No signature of method: SOME_GSP_gsp.assetPath() is applicable for argument types: (java.util.LinkedHashMap) values: [[src:SOME_PDF.pdf]]Wie die Asset-Pipeline taglib spotten, wenn eine Ansicht Testen

bekommen Grails 3.1.6

Beispiel Testdatei:

@TestMixin(GroovyPageUnitTestMixin) 
class SomeTests extends Specification { 

    void "ssn is not returned to the SOME_GSP page"() { 
     given: 
     def cmd = new commandObject(SOME_FIELD: 'data') 

     when: 
     def renderedView = render(view: 'SOME_GSP', model: [cmd: cmd]) 

     then: 
     assert !renderedView.contains('data') 
    } 
} 

Antwort

2

Es stellte sich heraus, dass ich bestimmte Klassen zu verspotten benötigt:

@Mock([AssetsTagLib, AssetMethodTagLib, AssetProcessorService]) 

und die Klassen zu erhalten, löse ich

testCompile "com.bertramlabs.plugins:asset-pipeline-grails:2.9.4" 
eine testCompile Abhängigkeit meiner build.gradle hinzuzufügen benötigt
Verwandte Themen