У меня есть класс, который вызывает backend для получения данных, поэтому в приведенном ниже коде я попытался написать модульный тест для класса, чтобы смоделировать его с помощью spyOn, чтобы я мог получить желаемый результат, но не удается импортировать классЛюбое представление о том, как методы класса spyOn с помощью jasmine?
В основном пытается spyOn на core
метод и базовые вызовы.
DrugPriceApi.ts
export class DrugPriceApi extends Types.ModuleBase < DrugPriceParam, DrugPriceResultSet[] > {
private _memberId: string = "";
private _dependencies: any;
private errorMessage: string = "There was an issue while retrieving drug price. Please try again.";
before(args: DrugPriceParam): Promise < DrugPriceParam > {
args.daysSupply = args.daysSupply ? args.daysSupply : args.appName === "VOYA" ? "90" : "BLNK";
return Promise.resolve(args);
}
core(args: DrugPriceParam, requestMethod: Interface.Core.RequestMethod, _dependencies: any): Promise < any > {
this._dependencies = _dependencies;
return new Promise < any > ((resolve: Function, reject: Function) => {
this.getDrug(function(resolve){ resolve( //response here);});
}
}
}
}
}
DrugPriceApi.spec.ts
import { Interface } from "dist/karma/core-sdk-lib/src/ts/interface/index";
import { } from 'jasmine';
import { Index } from "../../../../../index";
import { setup } from "dist/karma/core-sdk-lib/src/ts/helper/TestSetup.helper";
import { CApiSettings, CLogger } from "@cvsdigital_specialty/common-utils";
import { DrugPriceParam } from "./DrugPriceApi.interface";
import {DrugPriceApi} from "./DrugPriceApi.node";
describe("Module", () => {
let _sdkInstance: any;
let param = {
tokenId: '123',
appName: 'CMK_TEST',
refId: '123'
} as DrugPriceParam;
let memberInfo: any = {};
memberInfo.dateOfBirth = "11/11/11";
memberInfo.externalID = "6172";
memberInfo.internalID = "12";
memberInfo.clientId = "22322";
memberInfo.planId = "902H93";
memberInfo.eligibility = {
"benefitPlanList": {
"benefitPlan": [
{
"active": true,
"deliverySystem": 2,
},
{
"active": true,
"deliverySystem": 3,
}
]
}
};
param.memberInfo = memberInfo;
beforeEach(() => {
spyOn(DrugPriceApi, 'core' as any).and.returnValue(1); // 'as any' prevents compiler warning
});
it('verifies that core was called', () => {
const module = DrugPriceApi.core(param);
});
});