我想测试我的安全网络服务以下内容:
有人可以给我一些提示吗?我不知道如何访问grails安全服务以及在登录时何时对我的控制器运行测试。我需要一些模拟服务器或其他东西来测试我的控制器或?
对不起,我对这个话题很陌生,但我想在放弃对我的网络服务的控制之前走正确的方向。
感谢您的帮助!
答案 0 :(得分:7)
我们使用REST Client插件和functional testing插件来测试我们所有的网络服务。
例如......
void testCreateTag() {
def name = 'Test Name'
def jsonText = """
{
"class":"Tag",
"name":"${name}"
}
"""
post('/api/tag') {
headers['x-user-external-id'] = securityUser.externalId
headers['x-user-api-key'] = securityUser.apiKey
headers['Content-type'] = 'application/json'
body {
jsonText
}
}
def model = this.response.contentAsString
def map = JSON.parse(model)
assertNotNull(map.attributes.id)
Tag.withNewSession {
def tag = Tag.get(map.attributes.id)
assertNotNull(tag)
assertEquals(name, tag.name)
}
}
答案 1 :(得分:0)
我有类似的代码,它使用内置的(groovy 1.8)JsonSlurper,我认为它可能更可靠,只需要功能测试插件,但不需要REST Client插件。
String baseUrlString = 'http://localhost:8080/**YOURAPP**'
baseURL = baseUrlString
post('/j_spring_security_check?')
assertStatus 200
assertContentDoesNotContain('Access Denied')
get("/*your test URL*/")
def jsonObj = new JsonSlurper().parseText(this.response.contentAsString)
assertEquals(jsonObj.your.object.model, **yourContent**)