Javascript 获取错误';预期未定义为true';茉莉花
为服务函数编写一个测试用例,它应该返回true值。但是我得到了错误“Expected undefined to true”。下面是相同的代码 这是landingpage.servicice.spec.tsJavascript 获取错误';预期未定义为true';茉莉花,javascript,html,angular,jasmine,Javascript,Html,Angular,Jasmine,为服务函数编写一个测试用例,它应该返回true值。但是我得到了错误“Expected undefined to true”。下面是相同的代码 这是landingpage.servicice.spec.ts import {Card} from "../../../shared/components/card/card.model"; import {} from 'jasmine'; import {LandingPageService} from "../../.
import {Card} from "../../../shared/components/card/card.model";
import {} from 'jasmine';
import {LandingPageService} from "../../../features/admin/landing-page/landing-page.service";
import {ComponentFixture, TestBed} from "@angular/core/testing";
import {GBHttpClient, GBHttpClientCreator} from './../../../blocks/global/http-client';
import {HttpClient} from '@angular/common/http';
import {Principal,TokenService} from "../../../shared/auth";
import {Router} from '@angular/router';
import {MockRouter} from "../../../test-helpers/mock-route.service";
import {NgbModule} from "@ng-bootstrap/ng-bootstrap";
import {NgXTestModule} from "../../../test.module";
import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
import {MockBridgeService} from "../../../test-helpers/mock-bridge.service";
import {MockPrincipalService} from "../../../test-helpers/mock-principal.service";
import {TranslateService} from "@ngx-translate/core";
import {QuickTranslateService} from "../../../shared/services/quick-translate.service";
import {ParamsService} from './../../../shared/services/params.service';
import {SearchService} from "../../../features/search";
import {SpinnerService} from './../../../shared/spinner/spinner.service';
import {Observable,of} from 'rxjs';
describe('LandingPageService', () => {
// let result : boolean;
let landingPageService = {
checkLimitOrderFeatureEnabled: jasmine.createSpy(),
// checkItemCategoryLimit:jasmine.createSpy().and.returnValue(of(null))
}
let httpMock: HttpTestingController;
beforeEach(async() => {
const mockPrincipal = new MockPrincipalService();
const mockRouter = new MockRouter();
const mockBridgeService = new MockBridgeService();
const searchService = new SearchService(null, null);
await TestBed.configureTestingModule({
imports: [
NgXTestModule,
HttpClientTestingModule,
NgbModule.forRoot()
],
providers: [
{
provide: Principal,
useValue: mockPrincipal
},
{
provide: Router,
useValue: mockRouter
},
{
provide: "SearchService",
useValue: searchService
},
{
provide: "BridgeService",
useValue: mockBridgeService
},
LandingPageService,
TokenService,
QuickTranslateService,
TranslateService,
ParamsService,
SpinnerService,
{
provide: GBHttpClient,
useFactory: GBHttpClientCreator,
deps: [HttpClient]
}
]
})
landingPageService = TestBed.get(LandingPageService);
// result = false;
httpMock = TestBed.get(HttpTestingController);
});
afterEach(() => {
TestBed.resetTestingModule();
httpMock.verify();
});
it('should get Limit Order feature toggle value', () => {
spyOn(landingPageService,'checkLimitOrderFeatureEnabled').and.callThrough();
expect(landingPageService).toBeTruthy();
let result = landingPageService.checkLimitOrderFeatureEnabled();
expect(result).toBe(true);
});
});
这是登录页.service.ts
checkLimitOrderFeatureEnabled() {
return this.principal.getUserContext().enableLimitOrder && this.principal.getUserContext().enableLimitOrderParameter;
}
对于在landingpage服务中编写的此函数,我需要编写测试用例。请提供足够的信息,以便有人能够帮助您。下面的事情我不清楚:1。您在“应获取限制顺序功能切换值”规范中调用的函数是什么?2.为什么您希望GeneralCarousServices服务本身是真实的?3.请明确说明您要测试的服务功能定义、您编写的规范以及规范的期望。谢谢。我已经编辑了问题和代码,请仔细查看。你能删除规范中的前两行(spyOn(landingPageService,'checkLimitOrderFeatureEnabled')和.callThrough();expect(landingPageService).toBeTruthy();)并测试它吗。这两条线都不是必需的。另外,如果它不起作用,请发布错误。谢谢。请提供足够的信息,以便有人能帮助您。下面的事情我不清楚:1。您在“应获取限制顺序功能切换值”规范中调用的函数是什么?2.为什么您希望GeneralCarousServices服务本身是真实的?3.请明确说明您要测试的服务功能定义、您编写的规范以及规范的期望。谢谢。我已经编辑了问题和代码,请仔细查看。你能删除规范中的前两行(spyOn(landingPageService,'checkLimitOrderFeatureEnabled')和.callThrough();expect(landingPageService).toBeTruthy();)并测试它吗。这两条线都不是必需的。另外,如果它不起作用,请发布错误。谢谢