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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Jasmine 的測(cè)試失敗了

Jasmine 的測(cè)試失敗了

我想測(cè)試 Typescript 項(xiàng)目中沒(méi)有主體的函數(shù)。我創(chuàng)建了一個(gè)實(shí)用的 JS 函數(shù),它運(yùn)行得很好。給出如下:function isEmpty(f) {    // Get content between first { and last }    const m = f.toString().match(/\{([\s\S]*)\}/m);    // Strip comments    const l = m && m[1].replace(/^\s*\/\/.*$/mg, '').trim();    if (l.length === 0) {        return true;    } else {        return false;    }};function doSeatMouseClick(_event, _seat) {  //do nothing, read only}var bool = isEmpty(doSeatMouseClick);console.log(bool)在 Spec 文件中,當(dāng)我訪問(wèn)這個(gè)isEmpty函數(shù)時(shí)。測(cè)試失敗,在控制臺(tái)記錄該函數(shù)時(shí),我看到一些額外的代碼,我猜 webpack 預(yù)處理器正在添加這些代碼。describe('doSeatMouseClick()', () => {        it('should be empty', () => {            console.log(selectionTool.doSeatMouseClick.toString());            const bool = isEmpty(selectionTool.doSeatMouseClick);            expect(bool).toBeTruthy();        });    });測(cè)試失敗截圖:
查看完整描述

1 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

看起來(lái)函數(shù)不為空的原因是您的覆蓋率跟蹤器,因此cov_10clr7afd6.f[9]++. 這是檢查任何已完成編譯步驟的代碼的問(wèn)題之一,它可能不是您合理期望的。


這里有一些選項(xiàng):


考慮正則表達(dá)式替換中的插入

function isEmpty(f) {

? // Get content between first { and last }

? const m = f.toString().match(/\{([\s\S]*)\}/m);

? // Strip comments

? const l = m && m[1]

? ? .replace(/^\s*\/\/.*$/mg, '')

? ? .replace(/cov_\w*\.f\[[0-9]+\]\+\+;?/g, '')

? ? .trim();

? if (l.length === 0) {

? ? ? return true;

? } else {

? ? ? return false;

? }

};


function doSeatMouseClick(_event, _seat) {?

//do nothing, read only

cov_10clr7afd6.f[9]++;

cov_10clr7afd6.f[500]++

}


var bool = isEmpty(doSeatMouseClick);

console.log(bool)

此解決方案也是如此,因?yàn)?codecov 工具中的任何更改都可能會(huì)破壞此問(wèn)題。

使用 ESLint 代替

但故意忽略帶注釋的函數(shù)。reportIfEmpty您可以采用這種行為,也可以通過(guò)簡(jiǎn)化源代碼中的函數(shù)來(lái)基于它編寫自己的行為。

// https://github.com/eslint/eslint/blob/master/lib/rules/no-empty-function.js

function reportIfEmpty(node) {

? ? const kind = getKind(node);

? ? const name = astUtils.getFunctionNameWithKind(node);


? ? if (allowed.indexOf(kind) === -1 &&

? ? ? ? node.body.type === "BlockStatement" &&

? ? ? ? node.body.body.length === 0

? ? ) {

? ? ? ? context.report({

? ? ? ? ? ? node,

? ? ? ? ? ? loc: node.body.loc,

? ? ? ? ? ? messageId: "unexpected",

? ? ? ? ? ? data: { name }

? ? ? ? });

? ? }

}

您可以使用以下“在 2 分鐘內(nèi)創(chuàng)建自定義 ESLint 規(guī)則”將此新規(guī)則添加到您的 eslint 配置中。

這應(yīng)該是一個(gè)更強(qiáng)大的解決方案,但可能會(huì)突出顯示您不想處理的其他錯(cuò)誤。您可以使用eslint 覆蓋來(lái)幫助將規(guī)則定位到您想要的文件。


// .eslintrc

{

? ? "overrides": [

? ? ? ? {

? ? ? ? ? ? "files": ["some/path/*.ts"],

? ? ? ? ? ? "rules": {

? ? ? ? ? ? ? "my-project/no-empty-functions": "error"

? ? ? ? ? ? }

? ? ? ? }

? ? ]

}


查看完整回答
反對(duì) 回復(fù) 2023-07-20
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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