1

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

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

但这会在测试中给出 NullPointerException。

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

flash.get("key")

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

4

1 回答 1

1

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

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

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

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

于 2012-06-18T12:39:34.930 回答