Angular 2和服务单元测试
Angular 2 and unit testing with services
我正在尝试对angular 2服务进行单元测试,但遇到了一些问题。
我的课看起来如下:
import { Injectable } from '@angular/core';
import {Http} from '@angular/http';
@Injectable()
export class BoardServiceService {
private http:Http;
constructor(http:Http) {
this.http = http;
}
/**
* Load a list of remote boards
* @return {object} The HTTP observable
*/
loadBoards(){
return this.http.get('http://google.com');
}
}
我的测试如下。我需要测试第一次测试是否得到一个项目的数组:
import {
beforeEachProviders,
it,
describe,
expect,
inject
} from '@angular/core/testing';
import {Http, BaseRequestOptions, Response, ResponseOptions} from '@angular/http';
import {MockBackend} from '@angular/http/testing';
import {provide} from '@angular/core';
import { BoardServiceService } from './board-service.service';
describe('BoardService Service', () => {
beforeEachProviders(() => [
BaseRequestOptions,
MockBackend,
Response,
BoardServiceService,
provide(Http, {
useFactory: (backend, defaultOptions) => new Http(backend, defaultOptions),
deps: [MockBackend, BaseRequestOptions]
})
]);
it('should get me a list of items (array type) on subscribe',
inject([BoardServiceService, MockBackend], (service: BoardServiceService, MockBackend) => {
const resultSet = [{}];
const response = new Response(new ResponseOptions({body:resultSet, status:200}));
MockBackend.connections.subscribe(connection => connection.mockRespond(response));
BoardServiceService.loadBoards().subscribe(res => expect(res.length).toEqual(1));
}));
});
当我尝试使用angular cli(ng test)运行测试时,我会出现以下错误:
Broccoli插件[BroccoliTypeScriptCompiler]失败,返回:错误:Typescript发现以下错误:
C:/项目/angular2/kanboard/tmp/broccoli_type_script_compiler-input_base_path-NaWokBRS.tmp/0/src/app/service/boardService/board-service.spec.ts(35,27):类型"typeof"上不存在属性"loadBoards"BoardServiceService。
有人知道如何让它发挥作用吗?
我认为您应该使用以下内容:
service.loadBoards().subscribe(res => expect(res.length).toEqual(1));
而不是
BoardServiceService.loadBoards().subscribe(res => expect(res.length).toEqual(1));
注入的实例而不是类本身。。。
相关文章:
- Jasmine单元测试在监视服务方法时失败
- Angular 2和服务单元测试
- 在http服务单元测试中使用request-js时,chai.request不是一个函数
- $cacheFactory removeAll() 在服务中的单元测试在 Angular 1.2.0 中失败,但在 1.
- 如何在 angularjs 茉莉花单元测试中正确引用服务
- 无法将服务注入其 Angular 单元测试中
- 角度单元测试服务元素持久性
- 在 Karma/Jasmine 单元测试中注入 Angular $timeout服务的真实实现
- 尝试在 AngularJS 上对基本服务进行单元测试时出错
- 单元测试依赖于服务的角度过滤器
- 类型错误:parsed 在 angularjs 服务单元测试中未定义
- 如何在Jasmine中对依赖服务的函数进行单元测试
- 单元测试服务不;t注入工厂
- 为创建Json REST服务的模块编写单元测试
- 如何对一个主要负责重定向到应用程序外部页面的Angular服务进行单元测试
- 错误:单元测试AngularJs服务时,没有待处理的flush请求
- 单元测试调用服务的指令
- Angular.js承诺在单元测试服务时不解决因果报应问题
- Angularjs单元测试服务承诺
- AngularJS与Jasmine、Karma和ng Mock的单元测试服务