JS

时间:2015-11-10 07:19:10

标签: javascript node.js unit-testing mongoose

我使用Mongoose开发Nodejs(ES6)应用程序,我想知道单元测试此功能的目的是什么:

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

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

如果我尝试对这个“门面”进行单元测试,那会不会是一种不公平的行为?

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

2 个答案:

答案 0 :(得分:2)

使用Mockito api,创建mocks.Use

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

然后验证使用

调用它们的次数
Mockito.verify();

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

答案 1 :(得分:1)

您不应该测试Mongoose find()方法的工作原理。您应该编写确认其呼叫的测试。我会建议您使用mongoose-mock + proxyquire之类的东西来存储Mongoose,然后进行断言以验证是否调用了find()方法。