Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
vitestはじめるまで
Search
pisa-kun
November 07, 2024
Technology
0
73
vitestはじめるまで
pisa-kun
November 07, 2024
Tweet
Share
More Decks by pisa-kun
See All by pisa-kun
sre本読んだ感想
pisakun
0
160
githubのレポジトリから推しの変遷を見る
pisakun
1
36
Google Cloudで最近開発した色々_アイマスハッカソン2024
pisakun
1
65
Other Decks in Technology
See All in Technology
GPUと画像生成AIが拓くマーケティングとビジネスの未来:次世代の可能性
iotcomjpadmin
0
300
Microsoft 365と開発者ツールの素敵な関係
kkamegawa
1
1.3k
クラウドネイティブなNewSQLで実現するミッションクリティカルなアプリケーションの運用
yuyu_hf
PRO
1
160
累計2500万着電を支える大規模 電話自動応答サービスのアーキテクチャ / Architecture of a Large-Scale Automated Phone Response Service Supporting 25 Million Cumulative Calls
ymachida
8
4.3k
【ASW21-01】STAMPSTPAで導き出した課題に対する対策立案手法の提案
hianraku9498
0
180
GDGoC開発体験談 - Gemini生成AI活用ハッカソン / GASとFirebaseで挑むパン屋のフードロス解決 -
hotekagi
1
450
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
0
3.6k
突き破って学ぶコンテナセキュリティ/container-breakout-cncj-lt
mochizuki875
3
140
生成AIを活用したIT運用高度化への挑戦
iotcomjpadmin
0
290
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
0
770
GitHub Copilot全社導入のその後とGitHub×ZOZOTOWNコラボレーションの舞台裏 / GitHub ZOZOTOWN
ikkou
0
150
マルチプロダクト、マルチデータ基盤での Looker活用事例 〜BQじゃなくてもLookerはいいぞ〜
gappy50
0
120
Featured
See All Featured
Making Projects Easy
brettharned
115
5.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
0
57
Code Reviewing Like a Champion
maltzj
520
39k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Ruby is Unlike a Banana
tanoku
97
11k
Speed Design
sergeychernyshev
25
640
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
326
24k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Transcript
vitestはじめてみるまで 2024年 11月 7日 ぴさ(x: @pisa40338570) akihabara.any #2【ノンジャンル技術系LTイベント】
1 2 3 自己紹介 vitestとは アジェンダ vitest導入とテストまで
自己紹介 1 2 3
出身: 福岡県 就職してからの居住地: 大阪(新卒)->名古屋(転職1回目)->東京(今年・2回目) ぴさ@SREエンジニア 事業会社で府省庁向けのサービス開発しています 自己紹介 ビジネス向けPCのプリインソフト開発(C#) PCのデータ収集基盤開発(AWS, Python,
TS) Sier転職してPL・PM 現在: 府省庁向けサービス開発(GCP, Nextjs) SREっぽいこと(CICD, その他改善活動)
2 1 3 vitest(ヴィーテスト)とは
UnitTestとは プログラムコードの最小機能ユニットをテストするプロセス コード毎にユニットテストを作成し、変更があるたびにテストを自動実行することで早 期にバグやエラーを特定する 参照:https://aws.amazon.com/jp/what-is/unit-testing/
vitestとは モダンなフロントエンド開発を高速化するテストフレームワーク JavaScriptのテストフレームワークとして有名なJestと互換性があり、Jestと比較し てテスト実行のスピードが非常に早いのが特徴 JestからVitestへの移行ガイドや導入の記事が多い v1.0.0: 2023/12/5 release, latest v2.1.4
3 1 2 vitest導入とテストまで
vitestの導入1 1.プロジェクトの作成と関連パッケージのインストール 前提としてインストールしているもの ・node: v22.1.0 ・pnpm: v.8.15.9 *インストールしているパッケージは過不足あるかも・・・
vitestの導入2 2.vitestの設定、ルートディレクトリにvite.config.tsを作成 3.(必須ではない)package.jsonの設定
vitestで行う簡単なテスト1 e.g. 足し算をする簡単な関数のテスト src/utils/sum.ts src/test/sum.test.ts pnpm run testで passedがでればOK
vitestで行う簡単なテスト2 e.g. 各テスト前に実行(DBのデータをクリアするようなケース) src/utils/user.ts 配列にデータを挿入・取得・削除するクラス src/test/user.test.ts 直前にaddUserが実行されているが addUser(‘Liliya’)はid=1にしたい 全てのテスト実行前に Clearを行う
vitest(jest)で便利と思ったところ 関数内部で利用している関数をmock化できる点! src/utils/calc.ts src/utils/calcFunction.ts calcResultはadd, sub関数に依存してる もし、addが数十秒かかる処理だったら? src/test/calcFunction.test.ts calcResultが使っているsumとsubを mock化して固定値を返せる
vitest(jest)で便利と思ったところ 少し前は関数やclassを引数受け取りしてテストコード作ってたので mock機能はとても便利
ご清聴ありがとうございました