确保frisby.js测试API调用的任何方式都按顺序进行?

时间:2016-07-08 18:19:26

标签: rest testing jasmine frisby.js

我在API上尝试了一系列简单的测试:

  1. 使用POST
  2. 创建用户资源
  3. 使用GET
  4. 请求用户资源
  5. 使用DELETE
  6. 删除用户资源

    我有一个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中创建顺序测试的正确方法?

1 个答案:

答案 0 :(得分:1)

正如您正确指出的那样, Frisby.js 是异步的。有几种方法可以强制它更加同步运行。最简单但不是最干净的是使用.after(() -> ...您可以在 Fisby.js docs中找到有关after()的更多信息。