gpt4 book ai didi

java - PlayFramework - 使用 json 渲染运行功能测试

转载 作者:行者123 更新时间:2023-11-30 11:49:32 25 4
gpt4 key购买 nike

我正在尝试运行这个功能测试

    public class JsonRenderTest extends FunctionalTest {    
@Before
public void setup() {
Fixtures.deleteDatabase();
Fixtures.loadModels("data.yml");
}

@Test
public void testThatJsonRenderingWorks() {
Response response = GET("/recipe/1");
assertIsOk(response);
}
}

响应这个调用的 Action 是这样的

    public static void showRecipe(Long id){
Recipe recipe = Recipe.findById(id);
notFoundIfNull(recipe);
renderJSON(recipe);
}

当我使用位于 http://localhost:8080/@tests 的 TestRunner 在 firefox 中运行测试时我收到此错误消息:

Failure, Response status expected:<200> but was:<404>

现在如果我运行这个 url http://localhost:8080/recipe/1在浏览器中,我得到了我期望的 json 响应,它是我的食谱对象的 json 表示。

数据库中当然有id为1的菜谱。

现在是我的问题。为什么浏览器没有测试失败。我在 Chrome、IE 和 FF 中试过,结果相同。

任何指针将不胜感激。谢谢

-阿兰

最佳答案

谢谢大家。好的,我找到了答案。看来我的测试是在夹具数据完全加载之前运行的。我正在针对本地 MySql 数据库运行测试。当我删除电话时

Fixtures.deleteDatabase();

测试运行良好。

为了解决这个问题,我现在在 application.conf 文件中针对内存数据库运行我的测试

%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0

关于java - PlayFramework - 使用 json 渲染运行功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com