当前位置: 首页 > 知识库问答 >
问题:

如何使用Mocha和Chai对node创建的endpoint进行异步测试?

淳于星宇
2023-03-14
describe('Notifications API', ()=>{

    /*Getting All Notification*/
    describe('getNotifications', ()=>{
      it('it should GET all the notifications', async () => {
          const result = await chai.request(app).get('/getNotifications');
          result.should.have.status(200);
        });
    });
})

共有1个答案

车靖琪
2023-03-14

您可以这样做以不使用Async/Await:

describe('Notifications API', () => {
    /*Getting All Notification*/
    describe('getNotifications', () => {
        it('it should GET all the notifications', (done) => {
            chai.request(app)
                .get('/getNotifications').then(result => {
                    result.should.have.status(200);
                    done()
                }).catch(e => {
                    done(e)
                })
        });
    });

})

此外,我还使用await测试了您的代码,它可以正常工作。

it('Prueba', async () => {
    const result = await chai.request('https://stackoverflow.com').get('/');
    return result.should.have.status(200);
  })

确保您的API在2秒内返回数据,并添加return(尽管严格来说这并不是必需的)。

还有一个提示:不要将您的路径称为getnotifications它只称为/notifications更有意义。你使用的动词表示你想做的事,而不是路径。

您在请愿中使用了get动词,所以redundat将get添加到path中。

 类似资料:
  • 所以,我在测试一个依赖于事件发射器的组件。为此,我想出了一个解决方案,使用mocha+chai的承诺: 在控制台上,我得到了一个“unhandledPromiserEjectionWarning”,尽管reject函数正在被调用,因为它会立即显示消息“assertionError:Promise Error" (Node:25754)UnhandledPromiseRejectionWarning

  • 我已经使用mocha测试框架和chai断言库用TypeScript编写了一些测试(我对这三种测试都不熟悉),并看到抛出了一个错误,并且在下面的代码中调用了assert.fail()。不过,测试仍标记为通过。我很困惑为什么会发生这种情况,以及我是否在承诺上做错了什么。另外,如下所示,还有一个UnhandledPromiserEjectionWarning。我不明白为什么这被标记为未处理,因为我已经包

  • 问题内容: 有没有一种方法可以快速测试这些中间件: 我发现的唯一中间件测试是: 这与上面提供的简单中间件(类似于使用回调测试基本功能)很好地配合使用,但是对于更复杂的中间件,我无法使其正常工作。可以测试这种中间件吗? 问题答案: 这里有一个简单的设置,你可以使用,使用和: 从那里,您可以为模式匹配等添加更多详细的测试。由于仅使用,因此不必模拟整个对象(由Express创建),而只需使用带有属性的简

  • 问题内容: 您如何测试使用JUnit触发异步流程的方法? 我不知道如何让我的测试等待过程结束(这不完全是单元测试,它更像是集成测试,因为它涉及多个类,而不仅仅是一个类)。 问题答案: 恕我直言,让单元测试创​​建或在线程上等待是不好的做法。您希望这些测试能在几秒钟内运行。这就是为什么我想提出一种分两步的方法来测试异步过程。 测试您的异步过程是否已正确提交。您可以模拟接受异步请求的对象,并确保提交的

  • 目标 建立一个 lesson7 项目,在其中编写代码,我们暂时命名为 vendor 根据下面的步骤,最终的项目结构应该长这样 这次我们测试的对象是上文提到的 fibonacci 函数 此函数的定义为 int fibonacci(int n) 当 n === 0 时,返回 0;n === 1时,返回 1; n > 1 时,返回 fibonacci(n) === fibonacci(n-1) + fi

  • 问题内容: 我正在使用Mocha以便对为node.js编写的应用程序进行单元测试 我想知道是否可以对模块中未导出的功能进行单元测试。 例: 我在其中定义了很多功能 以及一些作为公共导出的功能: 测试用例的结构如下: 显然,这是行不通的,因为没有导出。 对私有方法进行单元测试的正确方法是什么?摩卡咖啡有内置的方法吗? 问题答案: 如果模块未导出功能,则模块外部的测试代码无法调用该功能。那是由于Jav