javascript - 模拟链式方法

标签 javascript testing jestjs

(我使用 Jest 进行测试) 例如我有这样的功能:

const find = () => {
    return {
        where: () => {
            in: () => {}
        }
    };
};

我在不同的地方称之为:

find('me').where('id').in(['123']);

如何模拟和测试 find()、where() 和 in() 中的调用?

最佳答案

这是一个非常简单的模拟界面:

const find = (findData) => {
    const data = {
      find: findData
    };
    const self = {
      where: (whereData) => {
        data.where = whereData;
        return self;
      },
      in: (inData) => {
        data.in = inData;
        return self;
      },
      data
    };
    
    return self;
};

const res = find('me').where('id').in(['123']);

console.log(res.data);

关于javascript - 模拟链式方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51643469/

相关文章:

javascript - post方法不发送全文

测试直接使用服务的 AngularJS 指令

testing - Cypress 测试不打开 Powerapps 页面

javascript - 引用错误 : Cannot access 'mockMethod1' before initialization

javascript - jQuery:设置if else语句根据浏览器宽度执行偏移

javascript - 仅在单击后加载 Bootstrap 模式内容

javascript - 使用xml2js的xml解析问题

testing - 让 Mocha 与 React Native 一起工作 - 错误 w/requiring & addons

javascript - 如何监视对于Jest方式导入的函数

reactjs - 如何用 enzyme 测试recompose的withHandlers、branch和withState中的处理程序?