我正在测试一个控制器,我不能发两个内容不同的帖子。 下面是一个例子,我用一些数据(post1,json1)执行一个帖子给cardController。然后,我执行另一个帖子,使用不同的数据(post2 with json2)。但是我无法成功完成第二篇文章,因为我已经看到(调试应用程序),请求中的json再次是json1,而不是josn2。那么,我怎么能在同一个测试中发两个不同的帖子呢?
void testSomething(){
def json1 = [number: "345678000000007", exp_month: 5, exp_year: 2012] as JSON
def strJson1 = json1 as String
cardController.request.contentType = "text/json"
cardController.request.content = strJson1.getBytes()
def post1 = cardController.post()
def json2 = [number: "345678000000009", exp_month: 5, exp_year: 2013] as JSON
def strJson2 = json2 as String
cardController.request.contentType = "text/json"
cardController.request.content = strJson2.getBytes()
def post2 = cardController.post()
}
答案 0 :(得分:4)
谢谢,我可以使用reset(),removeAllParameters()和clearAttributes()。 以下是示例:
void testSomething(){
def json1 = [number: "345678000000007", exp_month: 5, exp_year: 2012] as JSON
def strJson1 = json1 as String
cardController.request.contentType = "text/json"
cardController.request.content = strJson1.getBytes()
def post1 = cardController.post()
cardController.response.reset()
cardController.request.reset()
cardController.request.removeAllParameters()
cardController.request.clearAttributes()
def json2 = [number: "345678000000009", exp_month: 5, exp_year: 2013] as JSON
def strJson2 = json2 as String
cardController.request.contentType = "text/json"
cardController.request.content = strJson2.getBytes()
def post2 = cardController.post()
}
答案 1 :(得分:3)
在cardController.response.reset()
之后尝试拨打def post1 = cardController.post()
。预计每个测试方法都不会发出两个请求,因此您需要进行一些清理。