我有下面的类,它有一个块定义为一个数组,多个对象被推入这个数组this.chunk
。
搜索控制器.ts
@Injectable()
export class SearchController {
private chunk: any[] = [];
readonly CHUNK_SIZE: number = 100;
public async post(names) {
this.chunk.push(names);
if (this.chunk.length >= this.CHUNK_SIZE) {
return true;
}
return false;
}
}
我希望能够将CHUNK_SIZE模拟为等于1的数字,或者能够更改chunk.length
的值
下面是我的测试
SearchController.test.ts
it('should return true for chunk_size 1', async () => {
const actual = await queue.post({action: 'UPDATE'});
expect(actual).toBeTruthy();
});
我试过使用jest.spyOn(),但它不起作用。我错过了什么?
如果有人能帮忙我会很感激的。谢谢。
2条答案
按热度按时间3phpmpom1#
您可以在
it
块中使用以下技巧:例如:
f5emj3cl2#
我处理这种情况的技巧是创建一个派生的特定于测试的类:
...然后用新的类模拟 SearchController.ts 模块。如果需要,我使用
jest.requireActual()
来获取模块的真实值。