angular - 使用“jasmine-marbles”测试我的服务时出现“应该正确返回”错误
问题描述
我收到一个错误:
TypeError: actual.subscribe is not a function
19 | it('should correctly return', () => {
20 | const expectedValues = cold('--a', {a:[]});
> 21 | expect(sut.getAvailabilityType).toBeObservable(expectedValues);
| ^
22 | })
23 | })
但无法理解问题。这是我的服务片段:
@Injectable({
providedIn: 'root'
})
export class CandidateRegistrationManagementService {
constructor(private http: HttpClient) { }
getAvailabilityType(): Observable<ModelAvailabilityType> {
return this.http.get<ModelAvailabilityType>(environment.setUpAndConfigUrl + `LookupTypeValue/LookupValueTypeDetails?LookupTypeName=AvailabilityType`)
.pipe(
map(events => {
return events;
}),
catchError(this.handleError)
);
}
})
这是我对上述服务的测试(获取):
import { cold, hot } from 'jasmine-marbles';
import { CandidateRegistrationManagementService } from './candidate-registration-management.service';
describe('new service', () => {
let sut:CandidateRegistrationManagementService;
let mockService:any;
beforeEach(() => {
mockService = jasmine.createSpy('getAvailabilityType');
mockService.getAvailabilityType = hot('^-a', {a:[]});
sut = new CandidateRegistrationManagementService(mockService);
});
it('should be created', () => {
expect(sut).toBeTruthy();
})
it('should correctly return', () => {
const expectedValues = cold('--a', {a:[]});
expect(sut.getAvailabilityType).toBeObservable(expectedValues);
})
})
我无法理解这个问题。有什么帮助我吗?我按照这里的教程
解决方案
推荐阅读
- jquery - 如何通过向下滑动附加数据
- dart - 如何使验证时的 TextFormField 文本出现在 TextFormField 行下方
- reactjs - 单元测试:动作必须是普通对象。使用自定义中间件进行异步操作
- python - 使用 Windows 10 在 python 中输入 PS4 控制器
- postgresql - 如何使用环回 4 进行修复(将 rest 转换为 graphql):OPTIONS http://localhost:3001/graphql 405(不允许的方法)
- django - django.db.utils.ProgrammingError:运算符不存在:字符变化> =整数
- xml - 在 Flutter 中显示来自 XML 的动态列表视图
- nlp - StanfordNLP、CoreNLP、spaCy - 不同的依赖图
- python - 为什么这段代码不会呈现我输入的问题和答案?
- android - 如何发布列表
在android上进行多部分改造?