【问题标题】:Why do the tests for playframework fail with version 2.1.0?为什么 2.1.0 版本的 playframework 测试失败?
【发布时间】:2013-03-07 03:16:25
【问题描述】:

我正在尝试按照play framework 上的教程进行操作,但是当我到达他们运行测试的部分时,测试失败了。当我在浏览器中查看错误时,它说它找不到索引视图。我不确定为什么会这样。我猜他们在他们网站上的视频教程中使用的是旧版本。

如果你知道为什么最新版本(2.1.0)坏了,你能给我解释一下吗?

package controllers;

import play.*;
import play.mvc.*;
import views.html.*;


public class Application extends Controller {

    public static Result index() {
        return ok(index.render("Hello World."));
    }

}

这是导致测试失败的文件。当我查看 IntelliJ 时,错误提示“无法解析符号索引”。

@Test
public void renderTemplate() {
    Content html = views.html.index.render("Hello World.");
    assertThat(contentType(html)).isEqualTo("text/html");
    assertThat(contentAsString(html)).contains("Your new application is ready.");
}

这是 index.scala.html 文件中的代码

@(message: String)

@main("Welcome to Play 2.1") {

    @play20.welcome(message, style = "Java")

}

这是失败的测试。如果我像这样摆脱索引 返回 ok("Hello World."); 并对测试进行适当的调整,事情就会过去。但我想知道为什么他们一开始就失败了。特别是因为几乎所有东西都是开箱即用的。此外,事情运行没有错误。启动服务器时我可以看到索引页面,但由于某种原因,当我尝试运行测试时,我被告知测试看不到索引文件。

【问题讨论】:

  • 我认为这可能是一个错误 2.1.0 正在为 2.1.1 修复。能否提供失败的测试代码以及​​错误或失败原因?
  • @JamesWard 由于 index.scala.html 文件,测试失败。
  • @JamesWard 我添加了文件中的代码和导致事情失败的测试。
  • 您是否更改了您的index.scala.html?如果它仍然有欢迎消息,它应该可以工作,因为the html does contain“您的新应用程序已准备就绪。”
  • IntelliJ 错误是由于模板尚未编译为类。

标签: java playframework playframework-2.1


【解决方案1】:

看起来像是教程中的一个错误。测试似乎在寻找错误的字符串。尝试将最后一个资产更改为:

assertThat(contentAsString(html)).contains("Hello World.");

【讨论】:

    猜你喜欢
    • 2018-04-04
    • 1970-01-01
    • 2014-09-24
    • 2019-04-27
    • 2021-01-28
    • 2021-04-06
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    相关资源
    最近更新 更多