似乎当控制器的公共静态方法显式调用同一控制器的另一个公共静态方法(使用 Java 调用)时,Play!不知道在功能测试中只执行代码或重定向。
如果我有:
public class ApplicationTest extends FunctionalTest {
@Test
public void testProvesThatFunctionalTestsDoesntCallControllerMethods() {
Response response = GET("/");
assertEquals("", getContent(response));
}
@Test
public void testProvesThatCallingItDirectlyWorksAsExpected() throws Exception {
Response response = GET("/another");
assertEquals("ok!", getContent(response));
}
}
和:
public class Application extends Controller {
public static void index() {
another();
}
public static void another() {
renderText("ok!");
}
}
但是,如果我在我的网络浏览器中运行play run或play start并调用“/”然后它返回“ok!”,FunctionalTest不应该完全像在生产中运行它还是像在真实服务器中运行它一样工作?它促使我避免进行功能测试或对预运行的 Web 服务器进行大量手动设置和依赖,这并不酷。
提前致谢。