Angular 使用秋田查询的角度测试服务-模拟数据
我和秋田州经理一起工作。 我有一些服务/类正在订阅我的一个查询。 我试图用jasmine createSpyObj在我的查询中模拟一些数据 这是我的服务(部分): 这是我的测试:Angular 使用秋田查询的角度测试服务-模拟数据,angular,testing,service,akita,Angular,Testing,Service,Akita,我和秋田州经理一起工作。 我有一些服务/类正在订阅我的一个查询。 我试图用jasmine createSpyObj在我的查询中模拟一些数据 这是我的服务(部分): 这是我的测试: import { TestBed, async, tick } from '@angular/core/testing'; import { SomeLogicService } from './somelogic.service'; import { SomeQueryService } from './some.s
import { TestBed, async, tick } from '@angular/core/testing';
import { SomeLogicService } from './somelogic.service';
import { SomeQueryService } from './some.service';
import { SomeQuery } from '../stores/order/some/some.query';
import { of } from 'rxjs';
describe('EnhancementPriceService', () => {
let logicService: SomeLogicService;
let someQuery: jasmine.SpyObj<SomeQuery>;
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [
{
provide: SomeQueryService,
useValue: jasmine.createSpyObj('SomeQueryService', ['get'])
},
{
provide: SomeQuery,
useValue: jasmine.createSpyObj('SomeQuery', ['selectActive'])
}
]
});
}));
beforeEach(() => {
someQuery = TestBed.get(SomeQuery);
logicService = TestBed.get(SomeLogicService);
});
it('should return something', () => {
SomeQuery.selectActive.and.returnValue(
of([])
);
tick();
logicService.someMethod();
});
});
从'@angular/core/testing'导入{TestBed,async,tick};
从“./somelogic.service”导入{SomeLogicService};
从“/some.service”导入{SomeQueryService};
从“../stores/order/some/some.query”导入{SomeQuery};
从'rxjs'导入{of};
描述('EnhancementPriceService',()=>{
let logicService:SomeLogicService;
让我们来提问:jasmine.SpyObj;
beforeach(异步(()=>{
TestBed.configureTestingModule({
供应商:[
{
提供:SomeQueryService,
useValue:jasmine.createSpyObj('SomeQueryService',['get']))
},
{
提供:SomeQuery,
useValue:jasmine.createSpyObj('SomeQuery',['selectActive']))
}
]
});
}));
在每个之前(()=>{
someQuery=TestBed.get(someQuery);
logicService=TestBed.get(SomeLogicService);
});
它('应该返回某物',()=>{
SomeQuery.selectActive.and.returnValue(
([])的
);
勾选();
logicService.someMethod();
});
});
不知怎的,我有一个测试错误,它说:
“无法读取未定义的属性'subscribe'”
我的测试基于秋田官方文件:
我猜问题是:我试着测试服务,而不是组件。
还尝试提供存根查询-它是这样工作的,但对于每个测试,我需要其他数据…解决方案很简单。
我需要在返回存根后获得逻辑服务。因此:
it('should return something', () => {
SomeQuery.selectActive.and.returnValue(
of([])
);
logicService = TestBed.get(SomeLogicService);
logicService.someMethod();
});
解决办法很简单。
我需要在返回存根后获得逻辑服务。因此:
it('should return something', () => {
SomeQuery.selectActive.and.returnValue(
of([])
);
logicService = TestBed.get(SomeLogicService);
logicService.someMethod();
});