如何通过功能测试设置和验证闪存范围

时间:2012-06-18 08:11:04

标签: playframework

在播放功能测试中我正在对我的某些控制器方法执行请求。 在控制器中我使用闪存范围获取一些参数并使用它。 但是在测试中我无法设置这个flash参数,我试过了:

Flash.current().put("key","value");

但是在测试中会产生NullPointerException。

并且在控制器闪存范围内为空:

flash.get("key")

如何设置闪存范围?我不想测试设置此闪存值的整个工作流程,并且阅读它,我想专注于这一个请求。

1 个答案:

答案 0 :(得分:1)

功能测试执行与使用功能测试的测试设置处于不同的线程,因此设置Flash.current()将不起作用。

但是,FunctionalTest类在调用之间存储cookie。

因此,测试使用闪存范围的请求的一种可能性是首先调用请求,该请求在您的应用程序中确实设置了闪存范围 - 尽管根据您的描述,您不希望这样做。

另一种可能性是手动将Flash-Scoped变量放入Request中的Cookie中 - 您需要咨询play.mvc.Scope.Flash.save()格式。