[メモ] Jestで特定のメソッドが呼ばれていないことをアサートする
3418 ワード
やりたいこと
テストコードをJestで書いていて、特定のメソッドがコールされてないことをチェックしたい
というかES6以下で対象メソッドが動くことを確認したい
もっと良いやり方ありそうなのでご存じの方教えて頂きたいです...
やりかた
下記のような指定の文字で終わっているか確認するメソッドがあるとします。
endsWith
を使ってはいけない制約があるとします
app.js
// 指定の文字で終わっているか確認します
// ES6で導入されたendsWithは使ってはいけない
/**
* @param {String} str
* @param {String} target
*/
function confirmEnding(str, target) {
const len = str.length;
return str.substring(len - target.length, len) === target;
}
module.exports = confirmEnding;
endsWith
が使われていないことをアサートしたい場合
メソッド自体を文字列化し、対象のメソッドが文字列に含まれていないことを確認します
app.test.js
const confirmEnding = require("./ConfirmtheEndingTargetStr");
test("confirmEnding()はendsWithを使用していけません", () => {
const result = confirmEnding
.toString()
.replace(confirmEnding.name, ""); // メソッド名に`endsWith`が入ってるとだめなので、消しておく
expect(result.includes("endsWith")).toBeFalsy();
});
Author And Source
この問題について([メモ] Jestで特定のメソッドが呼ばれていないことをアサートする), 我々は、より多くの情報をここで見つけました https://qiita.com/ntm718/items/c9bc99db82bd05a3d1d4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .