【发布时间】:2021-07-11 15:08:11
【问题描述】:
我正在尝试使用 jest 模拟整个对象(来自 ag-grid 的 ColumnApi),然后通过参数将其传递给某个函数,该函数从 ColumnApi 调用方法“getAllColumns”。我不在乎“getAllColumns”是如何工作的,但我希望它返回一些特定的列数组(Column[])。我怎样才能创建这个对象/模拟能够同时:
- 通过参数将其传递给某些需要 ColumnApi 类型的函数
- 此对象的一个函数的模拟返回值。
测试:
describe("test", () => {
// my fruitless tries to create the mock / object:
// let columnApi: ColumnApi {};
// const spyInstance = jest.spyOn(columnApi, "getAllColumns");
// const mock = jest.fn().mockImplementation(()=> "abc");
// jest.mock("@ag-grid-community/core/dist/cjs/columnController/columnApi", () => columnApi);
// const columnApiSpy = jest.spyOn(ColumnApi, "getAllColumns");
//
// jest.mock("./main", () => ({
// columnApi: ,
// }));
// let columnApiMock: jest.Mock<ColumnApi>;
const params = {
columnApi: columnApi,
}
beforeEach(async () => {
await repository.getRows(params);
});
});
来自存储库的“getRows”函数:
getRows(columnApi: ColumnsApi) {
columnApi.getAllColumns());
}
【问题讨论】:
标签: typescript vue.js jestjs mocking ag-grid