小编rag*_*ghu的帖子

如何在 grails TagLib 单元测试中模拟服务

我有如下的 TagLib、Service 和 TestCase

如何在 taglib 中模拟服务以从服务中获得预期结果

标签库:

   class SampleTagLib {

     static namespace = "sample"
     def baseService

     def writeName = { attrs, body ->
        def result = baseService.findAttributeValue(attrs.something)

        if(result)
           out << body()
     }
 }
Run Code Online (Sandbox Code Playgroud)

服务:

 class BaseService {

     def findAttributeValue(arg1) {

       return false  
     }
}
Run Code Online (Sandbox Code Playgroud)

TagLibUnitTestCase:

import spock.lang.*
import grails.plugin.spock.*
import org.junit.*
import grails.test.mixin.*
import grails.test.mixin.support.*

import grails.test.mixin.Mock

@TestFor(SampleTagLib)
@Mock(BaseService)
class SampleTagLibSpec extends Specification {
      def template

      def setup(){

         tagLib.baseService = Mock(BaseService)
      }


      def 'writeName'(){
        given:
        tagLib.baseService.findAttributeValue(_) >> true
        def …
Run Code Online (Sandbox Code Playgroud)

grails unit-testing taglib grails-2.0

5
推荐指数
1
解决办法
2595
查看次数

标签 统计

grails ×1

grails-2.0 ×1

taglib ×1

unit-testing ×1