我有一个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
}
}