有什么方法可以确保 frisby.js 测试 API 调用按顺序进行?
Any way to ensure frisby.js test API calls go in sequential order?
我正在 API:
上尝试一系列简单的测试
- 使用
POST
创建用户资源
- 请求用户资源
GET
- 删除带有
DELETE
的用户资源
我有一个飞盘测试规范文件 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();
非常基本的东西,对吧。但是,据我所知,不能保证它们会按顺序执行,因为它们是异步的,所以如果用户在他们 [=35= 时不存在,我可能会在测试 2 或 3 上得到 404 ].
有谁知道在 Frisby 中创建顺序测试的正确方法吗?
正如您正确指出的那样,Frisby.js 是异步的。有几种方法可以强制它更同步地 运行。最简单但不是最干净的是使用 .after(() -> ...
您可以在 Fisby.js docs.[=13 中找到有关 after()
的更多信息=]
我正在 API:
上尝试一系列简单的测试- 使用
POST
创建用户资源
- 请求用户资源
GET
- 删除带有
DELETE
的用户资源
我有一个飞盘测试规范文件 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();
非常基本的东西,对吧。但是,据我所知,不能保证它们会按顺序执行,因为它们是异步的,所以如果用户在他们 [=35= 时不存在,我可能会在测试 2 或 3 上得到 404 ].
有谁知道在 Frisby 中创建顺序测试的正确方法吗?
正如您正确指出的那样,Frisby.js 是异步的。有几种方法可以强制它更同步地 运行。最简单但不是最干净的是使用 .after(() -> ...
您可以在 Fisby.js docs.[=13 中找到有关 after()
的更多信息=]