Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取错误';预期未定义为true';茉莉花_Javascript_Html_Angular_Jasmine - Fatal编程技术网

Javascript 获取错误';预期未定义为true';茉莉花

Javascript 获取错误';预期未定义为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 "../../.

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

这是landingpage.servicice.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);
      });
    
    
    });
这是登录页.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();)并测试它吗。这两条线都不是必需的。另外,如果它不起作用,请发布错误。谢谢