【问题标题】:Unit testing, database approach with JS单元测试,使用 JS 的数据库方法
【发布时间】:2016-02-11 00:28:46
【问题描述】:

我正在使用 Mongoose 开发 Nodejs (ES6) 应用程序,我想知道对这个功能进行单元测试的目的是什么:

getAll(){
  return MongooseUserShema.find({}).exec();
}

实际上,Mongoose 是一个众所周知的库,很多人都在使用它,而且它经过了很好的测试。

如果我尝试对这个“门面”进行单元测试,会不会是多余的?

我知道测试的重要性,但如果我的函数内部没有任何逻辑,除了来自外部库的调用(经过良好测试),我想知道这种情况下的目标是什么?

【问题讨论】:

    标签: javascript node.js unit-testing mongoose


    【解决方案1】:

    使用 Mockito api,创建 mocks.Use

    Mockito.when(<service_call>).thenReturn(<answer>);
    

    然后验证它们被调用了多少次

    Mockito.verify();
    

    单元测试很重要,以确保所有外部服务调用都发生预期的次数并实现编写方法的功能。

    【讨论】:

      【解决方案2】:

      您不应该测试 Mongoose find() 方法的工作原理。您应该编写确认其调用的测试。我建议你用 mongoose-mock + proxyquire 之类的东西来存根 Mongoose,然后做出一个断言来验证是否调用了 find() 方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        • 1970-01-01
        • 2019-03-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多