首页 > 解决方案 > 从 sqliterally 模拟查询对象

问题描述

我正在尝试使用 jest 来模拟查询以进行以下实现

import { query } from 'sqliterally'

const script = query
    .select`*`
    .from`table_name`
    .where`title = ${title}`
    .where`lang = ${lang}`
    .orderBy`date DESC`
    .build()

下面我尝试了,但它不起作用并出现错误“无法读取未定义的属性'来自'”

jest.mock('sqliterally')
import { query } from 'sqliterally'

const querybuilder = jest.fn().mockImplementation(() => ({
      select: jest.fn().mockReturnThis(),
      from: jest.fn().mockReturnThis(),
      where: jest.fn().mockReturnThis(),
      orderBy: jest.fn().mockReturnThis(),
      build: jest.fn().mockImplementation(()=> Promise.resolve("select * from table_name"))
    }))

const mSQL = jest.fn().mockReturnValue(querybuilder);
(query as any).mockReturnValue(mSQL);

我真的很感激这方面的任何帮助。

标签: jestjsmocking

解决方案


推荐阅读