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

如何使用这两个应该和做在摩卡和柴与节点。js

陈法
2023-03-14

我刚开始学摩卡和茶。而我被困在这里

const UserService = new Service();
describe("user-services.spec", () => {
    describe("Services testing", () => {

        before((done) => {
            db();
            userModel.remove({}, done);
        })

        after((done) => {
            mongoose.connection.close();
            done();
        })

        it("should add user to db", () => {
            let id = 4;
            let name = "Alen";
            (async () => {
                let result = await UserService.addUser(id, name);
                console.log("result", result);
                result.should.have.property("_i");
                //done();
            })();
        })
    })
})

基于以上代码,现在我有两个问题

>

如果我想使用上面的代码完成并取消注释完成(),那么它会出错

超过了2000毫秒的超时时间。对于异步测试和挂钩,确保调用“done()”;如果返回promise,请确保它已解决。

共有1个答案

东方嘉木
2023-03-14

对于您的第一个问题,我已经使用result.should.have.property("_i")进行了测试;失败了。

async function addUser(id, name){
  return {_id:""}
}

然后它抛出

Uncaught AssertionError: expected { _id: '' } to have property '_i'

正如所料。

因此,请检查返回的值。您还可以查看文档

对于第二个问题,do()是回调,表示Mocha函数在哪里完成。摩卡也有一个超时(最大。时间测试将等待)。如果在没有调用do()的情况下达到最大时间,Mocha将抛出一个错误,说它还没有完成(做了没有调用)。

如果不调用done()。您会收到超过2000ms超时的错误,因为如文档所述,2秒是默认值。

指定测试用例超时,默认为两(2)秒(2000毫秒)。超过此时间的测试将被标记为失败。

 类似资料:
  • 以下测试表现异常: 我应该如何正确处理被拒绝的promise(并测试它)? 如何正确处理失败的测试(即:

  • 问题内容: 以下测试的行为异常: 我应该如何正确处理被拒绝的承诺(并进行测试)? 我应该如何正确处理失败的测试(即:? 这是我正在测试的实现: 问题答案: 最简单的方法是使用Mocha在最新版本中提供的内置Promise支持: 或者使用现代Node和async / await: 因为这种方法是端到端的承诺,所以它更易于测试,您不必考虑正在考虑的奇怪情况,就像到处都是奇怪的电话一样。 这是Mocha

  • 我应该如何在Flex上做这个网格?如果我将给父级,那么底线将有很大的空格(中间有很大的空格,中间有空格),如果我删除并使用,我将在所有的右块,所有的行都有margy-right。 null null

  • 我应该如何在Flex上做这个网格?如果我将给父级,那么底线将有很大的空格(中间有很大的空格,中间有空格),如果我删除并使用,我将在所有的右块,所有的行都有margy-right。 null null

  • 我正在使用对示例项目进行单元测试。然后是下面的参考。 https://www.sitepoint.com/unit-test-javascript-mocha-chai/ 我可以使用终端成功地运行测试。它显示成功/失败测试状态。但是,不生成测试报告。 我在终端中使用了下面的命令来运行测试 如何生成测试报告。

  • 我有点困惑与谷歌标签管理器和gtag.js.我已经读了很多关于它,但它不是100%清楚我用什么在我的情况下。 历史上,我们一直在AngularJS webapp中使用gtag.js。我们还使用图书馆的角度来跟踪谷歌广告转换的购买提供动态价格和线索直接从我们的网站。 我们已经迁移到GTM,从GTM接口提供第三方库。这意味着我们已经评论/删除了gtag。js。现在,我们从GTM跟踪页面分析。然而,很明