jestのspyOnでmockする際に詰まった話
by
riku0202
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
jestのspyOnでmockする際に 詰まった話
Slide 2
Slide 2 text
自己紹介
Slide 3
Slide 3 text
Riku Shimojima 株式会社HRBrain フロントエンド(React,TS) バックエンド(Go) エンジニア歴1年半 twitter: @Riku_0202_
Slide 4
Slide 4 text
ある日、CustomHooksのテストを書いていると、、、
Slide 5
Slide 5 text
なぜかテストが通らない、、、
Slide 6
Slide 6 text
なぜかテストが通らない、、、 例
Slide 7
Slide 7 text
なぜかテストが通らない、、、 例
Slide 8
Slide 8 text
refを渡したElementの 高さを取得し保持する CustomHook 例
Slide 9
Slide 9 text
例 てすと
Slide 10
Slide 10 text
useRefのモックが上手くいってないっぽい??
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
調べてみた👀
Slide 13
Slide 13 text
jestのissueにめっちゃ書いてありました
Slide 14
Slide 14 text
問題はこのimport方法にありました import * as React from "react"; import React from "react";
Slide 15
Slide 15 text
トランスパイル import { useRef } from "react" import * as React from "react" useRef React.useRef import React from "react" React.useRef
Slide 16
Slide 16 text
_react.useRef _react.useRef トランスパイル import { useRef } from "react" import * as React from "react" useRef React.useRef import React from "react" React.useRef _react["default"].useRef
Slide 17
Slide 17 text
↑は _react["default"] をmockしている jest.spyOn(React, "useRef");
Slide 18
Slide 18 text
↑は _react["default"] をmockしている jest.spyOn(React, "useRef"); 故に単一importしたuseRefは モックされない _react.useRef; _react["default"].useRef;
Slide 19
Slide 19 text
No content
Slide 20
Slide 20 text
成功!
Slide 21
Slide 21 text
[ 参考リンク ] Mock/Spy exported functions within a single module in Jest jest.spyOnで差し替わってなかった Jest spyOn() calls the actual function instead of the mocked
Slide 22
Slide 22 text
フロントエンドエンジニアを積極採用募集中です
Slide 23
Slide 23 text
フロントエンドエンジニアを積極採用募集中です @Riku_0202_
Slide 24
Slide 24 text
ありがとうございました!! @Riku_0202_