我使用Mongoose开发Nodejs(ES6)应用程序,我想知道单元测试此功能的目的是什么:
getAll(){
return MongooseUserShema.find({}).exec();
}
实际上,Mongoose是一个众所周知的图书馆,很多人都使用它,并且经过了很好的测试。
如果我尝试对这个“门面”进行单元测试,那会不会是一种不公平的行为?
我知道测试的重要性,但如果我的函数中没有任何逻辑,除了来自外部库的调用(经过充分测试),我想知道在这种情况下可能的目标是什么?
答案 0 :(得分:2)
使用Mockito api,创建mocks.Use
Mockito.when(<service_call>).thenReturn(<answer>);
然后验证使用
调用它们的次数Mockito.verify();
单元测试非常重要,以确保所有外部服务调用都发生预期的次数,并且可以实现编写方法的功能。
答案 1 :(得分:1)
您不应该测试Mongoose find()
方法的工作原理。您应该编写确认其呼叫的测试。我会建议您使用mongoose-mock
+ proxyquire
之类的东西来存储Mongoose,然后进行断言以验证是否调用了find()
方法。