服务Grails的单元测试用例

时间:2016-03-21 06:00:01

标签: unit-testing grails gorm

我有一个grails的Web应用程序,Groovy服务用于访问数据库。需要为各种方法创建测试用例。使用下面的方法总是在从Unit测试用例调用服务方法时生成NullPointerException。 问题在于访问数据库连接。请建议。

**只是添加我在执行应用程序后运行单元测试用例。

TestService.groovy

package com.sample.services

import com.gmongo.GMongo
import com.mongodb.DB
import grails.transaction.Transactional

@Transactional
class TestService {
    GMongo mongo
    DB db

    def DB db() {
        return mongo.getDB("myApp")
    }

    def getDistinctProducts() {
        return db().app_products.distinct("products").sort()
    }
}

单元测试用例

package com.sample.services

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

@TestFor(TestService)
class TestServiceSpec extends Specification {

    void "test get distinct products"() {
          def str   
          when:
             str = service.getDistinctProducts()
          then:
             str.size() == 36  
    }

}

0 个答案:

没有答案