我有一个使用 rxjs 的 lastValueFrom 方法的控制器,我想模拟该方法,以便不会调用实际的方法。我的控制器代码是:
async doSomething(request) {
...
const data = await lastValueFrom(
...
);
...
}
Run Code Online (Sandbox Code Playgroud)
为了测试,我尝试了多种方法,即:
import rxjs from 'rxjs';
jest.spyOn(rxjs, 'lastValueFrom').mockReturnValueOnce(
new Promise((resolve, reject) => {
resolve(true);
}),
);
// This gives me error: Cannot spyOn on a primitive value; undefined given
Run Code Online (Sandbox Code Playgroud)
import { lastValueFrom } from 'rxjs';
lastValueFrom = jest.fn().mockReturnValueOnce(
new Promise((resolve, reject) => {
resolve(true),
);
// This gives me error: Cannot assign to 'lastValueFrom' because it is an import.
Run Code Online (Sandbox Code Playgroud)
import rxjs from 'rxjs'; …Run Code Online (Sandbox Code Playgroud)