developit / developit/undom

Problem with spies

オープン
#35 コメント 3 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
JavaScript
スター
690
フォーク
25
PR マージ指標
30日以内にマージされた PR はありません

説明

I'm trying to spy on `removeChild` in a test - I have a `parent` node being modified like this:

```
let removals = 0;

let removeChild = parent.removeChild.bind(parent);

parent.removeChild = (child) => {
removals += 1;
return removeChild(child);
};
```

To my surprise, it was counting way too many calls to `removeChild`.

It turns out, several of these methods are being called internally, for brevity.

The real DOM does not call it's own public methods, afaik? If it needs to remove children for other reasons than calls to `removeChild`, it does not internally call the method, it just removed them.

How would you feel about moving the internally reused methods to private methods?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

parent.removeChild の実装から始め、内部でそれを呼び出す他の DOM メソッドをたどる。公開メソッドを経由せずに済ませるべき、内部で再利用されている操作を特定し、その後、明示的な removeChild 呼び出しは引き続き観測可能である一方、内部の削除ではカウントが増加しなくなっていることを検証する。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
javascript
領域
web-dev
issue の種類
リファクタリング
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。