第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

javascript單元測試 - 從玩笑虛擬模擬返回不同的對象

javascript單元測試 - 從玩笑虛擬模擬返回不同的對象

慕的地6264312 2021-10-14 17:38:22
我有一個使用虛擬模擬的笑話單元測試。虛擬模擬返回一個帶有 apiName = "standard__abc" 的對象我測試了一個函數(shù)(isApiNameABC()),如果 apiName === "standard__abc" 則它使用模擬對象返回 true,否則它返回 false。使用下面的代碼,我可以測試返回 true 的條件......我的問題是,如何修改我的測試代碼,以便虛擬模擬為 apiName 返回一些其他值。我想這樣做是為了測試 isApiNameABC() 返回 false 的情況。import * as utils from '../utils';jest.mock('mdl/appContextService', () => {    return {         appContext: {            apiName: "standard__abc"        }    }}, {virtual: true});describe("utils", () => {     test("test return value of apiName is EQUAL to standard__abc", () => {        expect(utils.isApiNameABC()).toEqual(true);          });});
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經(jīng)驗 獲得超4個贊

apiName 只是模塊導出的一個屬性,因此您可以直接更改它。


假設(shè)utils.js看起來像這樣:


import { appContext } from 'mdl/appContextService';


export const isApiNameABC = () => appContext.apiName === 'standard__abc';

你可以這樣測試:


import * as utils from './utils';

import { appContext } from 'mdl/appContextService';


jest.mock('mdl/appContextService', () => {

  return {

    appContext: {

      apiName: "standard__abc"

    }

  }

}, { virtual: true });


describe("utils", () => {

  test("test return value of apiName is EQUAL to standard__abc", () => {

    expect(utils.isApiNameABC()).toEqual(true);  // Success!

  });

  test("test return value of apiName is NOT EQUAL to standard__abc", () => {

    const original = appContext.apiName;

    appContext.apiName = 'something else';  // <= change it directly

    expect(utils.isApiNameABC()).toEqual(false);  // Success!

    appContext.apiName = original;  // <= restore it

  });

});

如果apiName是函數(shù),則可以使用模擬函數(shù)并更改其返回值:


import * as utils from './utils';

import { appContext } from 'mdl/appContextService';


jest.mock('mdl/appContextService', () => {

  return {

    appContext: {

      apiName: jest.fn(() => "standard__abc")  // <= use a mock function

    }

  }

}, { virtual: true });


describe("utils", () => {

  test("test return value of apiName is EQUAL to standard__abc", () => {

    expect(utils.isApiNameABC()).toEqual(true);  // Success!

  });

  test("test return value of apiName is NOT EQUAL to standard__abc", () => {

    appContext.apiName.mockReturnValue('something else');  // <= change the return value

    expect(utils.isApiNameABC()).toEqual(false);  // Success!

  });

});


查看完整回答
反對 回復 2021-10-14
  • 1 回答
  • 0 關(guān)注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號