我正在尝试对API进行简单的测试:
用POST
创建用户资源
使用GET
请求用户资源
用DELETE
删除用户资源
我只有一个frisby测试规范文件mytest_spec.js
。我将测试分为3个独立的步骤,每个步骤都有自己的toss()
:
f1 = frisby.create("Create");
f1.post(post_url, {user_id: 1});
f1.expectStatus(201);
f1.toss();
// stuff...
f2 = frisby.create("Get");
f2.get(get_url);
f2.expectStatus(200);
f2.toss();
//Stuff...
f3 = frisby.create("delete");
f3.get(delete_url);
f3.expectStatus(200);
f3.toss();
很基本的东西,对。但是,就我所知,它们是异步的,因此无法保证它们将按顺序执行,因此,如果在运行时用户不存在,我可能会在测试2或3上得到404。
有谁知道在Frisby中创建顺序测试的正确方法?
最佳答案
正如您正确指出的那样,Frisby.js是异步的。有几种方法可以强制其更同步地运行。最简单但不是最简单的方法是使用.after(() -> ...
,您可以在Fisby.js docs中找到有关after()
的更多信息。