在Jasmine中收到错误“预期未定义为真”

问题描述

为服务函数编写一个测试用例,该测试用例应返回真实值。但是我收到错误消息“ Expected undefined to true”。下面是相同的代码

这是Landingpage.serviice.spec.ts

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);
      });
    
    
    });

这是Landing-page.service.ts

checkLimitOrderFeatureEnabled() {
      return this.principal.getUserContext().enableLimitOrder && this.principal.getUserContext().enableLimitOrderParameter;
    }

对于使用着陆页服务编写的此功能,我需要编写测试用例。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)