Rest 有没有办法确保frisby.js测试API调用按顺序进行?

Rest 有没有办法确保frisby.js测试API调用按顺序进行?,rest,testing,jasmine,frisby.js,Rest,Testing,Jasmine,Frisby.js,我正在尝试对API进行一系列简单的测试: 使用POST 使用GET 使用Delete 我有一个飞盘测试规范文件mytest\u spec.js。我将测试分为3个独立的步骤,每个步骤都有自己的toss()类似: f1 = frisby.create("Create"); f1.post(post_url, {user_id: 1}); f1.expectStatus(201); f1.toss(); // stuff... f2 = frisby

我正在尝试对API进行一系列简单的测试:

  • 使用
    POST
  • 使用
    GET
  • 使用
    Delete
  • 我有一个飞盘测试规范文件
    mytest\u 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中找到更多关于
    after()
    的信息。

    是的,将非琐碎的流与
    after
    链接在一起会变得混乱、快速。是否有其他方法可以强制先完成测试的前期工作(你不需要真正测试的东西,但需要为测试设置)?这将使()长度减少。是的,在测试设置的情况下-假设您有
    场景_spec.coffee
    ,需要在执行之前注册帐户。然后您可以准备文件
    env.coffee
    ,并在那里提供注册。最后初始化
    env=require”。/env
    场景_spec.coffee
    的开头,您可以确定在您的案例之前将执行设置(注册)。