Ниже мое действие в контроллере. Я пытаюсь проверить это действие с помощью интеграционного теста. Это потребовало бы, чтобы я также издевался над объектами сеанса. Я начал с интеграционного теста, но мне не повезло.
def listData= {
def playerId=session["playerId”]
tuneInstanceList = tuneService.calculateId(playerId)
def listResult = [total: tuneInstanceList.size(), items: tuneInstanceList]
render listResult as JSON;
}
Ниже приведен метод CalculateId в моем классе обслуживания:
List<Tune> calculateId(String playerId) {
try{
//read the sql file
String playerSql = grailsApplication.mainContext.getResource('classpath:' + Constants.PLAYER_FILE).inputStream.text
def sql = new groovy.sql.Sql(dataSource)
def params = [playerId:playerId]
def tuneInstanceList = new ArrayList<Tune>()
def results = sql.rows(playerSql, params)
tuneInstanceList = results.each {
def tune = new Tune()
tune.setPlayerId it.player_id
tuneInstanceList.add tune
}
return tuneInstanceList
}catch (Exception ex) {
log.error ex.message, ex
throw ex
}
//finally {
//sql.close()
//}
}
Ниже приведен тест интеграции, который я написал. Это не правильно, и я не уверен, что я должен здесь выкладывать. Входы?
public void testQuery () {
def myController = new TuneController()
myController.request.contentType = "text/json"
myController.tuneService = tuneService
myController.listData()
String actualJSON = myController.response.contentAsString
assertNotNull(actualJSON)
}
При выполнении теста появляется ошибка ниже.
Невозможно получить свойство 'request' для нулевого объекта
java.lang.NullPointerException: Невозможно получить свойство 'request' для нулевого объекта
Мысль ??