gpt4 book ai didi

javascript - rxjs jest 流中的模拟对象

转载 作者:行者123 更新时间:2023-11-30 14:28:32 26 4
gpt4 key购买 nike

您好,我尝试测试这段代码

import { Observable, Subscriber } from 'rxjs';
function getJavaRequest<T>(globals: any): (name: string) => Observable<T> {
return (name: string) => Observable
.create((observer: Subscriber<T>) => {
globals[name] = (event: T) => observer.next(event);
});
};

我正在使用 jest 框架。我想 Jest 创建模拟对象并检查该函数创建流并向流添加一些东西我有这样的东西

import {getJavaRequest } from './JcefStreams';
import { TestScheduler } from 'rxjs/testing';
test('It should return mocked object from stream', () => {
const testObject = jest.mock();
let test;
getJavaRequest(testObject).subscribe(e: any => e == test);

expect(test).toBe(global);
});

但它不能正常工作

最佳答案

您需要创建一个模拟的可观察对象。

例如:

//...
import { of } from 'rxjs/observable/of';

class RequestServiceMock {
get = jest.fn();
}

describe('', () => {
it('', () => {
const requestService = RequestService as RequestServiceMock;
requestService.get.mockReturnValue(of([]));

requestService.get().subscribe(_ => expect(_).toBeTruthy())
});
});

希望这对您有所帮助。

关于javascript - rxjs jest 流中的模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51553647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com