Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何覆盖架构上的Mongoose findOne()函数进行测试?_Javascript_Unit Testing_Mongoose - Fatal编程技术网

Javascript 如何覆盖架构上的Mongoose findOne()函数进行测试?

Javascript 如何覆盖架构上的Mongoose findOne()函数进行测试?,javascript,unit-testing,mongoose,Javascript,Unit Testing,Mongoose,我试图测试一些业务逻辑,需要覆盖放置在Mongoose模式上的findOne()函数 我尝试做的一个小的可行例子是: function myFunc() { const qry = { ...search_criteria... }; mySchema.findOne(qry) .exec() .then((doc) => { ...some business logic...}) } 如何操作findOne()函数,以定义它在测试中返回的内容?您可以使用它创

我试图测试一些业务逻辑,需要覆盖放置在Mongoose模式上的findOne()函数

我尝试做的一个小的可行例子是:

function myFunc() {
  const qry = { ...search_criteria... };
  mySchema.findOne(qry)
     .exec()
     .then((doc) => { ...some business logic...})
}
如何操作findOne()函数,以定义它在测试中返回的内容?

您可以使用它创建一个函数,基本上用您需要的任何内容完全替换它

例如:

const findOne = sinon.stub(mySchema, 'findOne');
findOne.callsFake((query) => { console.log('Test'); });

mySchema.findOne({}); // prints 'Test'