Suche senden
Hochladen
MochaとChaiでやるJavaScriptテスト
•
16 gefällt mir
•
7,375 views
Shunji Konishi
Folgen
2014/09/11 社内勉強会資料
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 18
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
名は体を表していますか
名は体を表していますか
infinite_loop
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
どこに何を書くのか?
どこに何を書くのか?
pospome
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
Empfohlen
.NETのサポートポリシーのおさらい #csharptokyo
.NETのサポートポリシーのおさらい #csharptokyo
Yuta Matsumura
名は体を表していますか
名は体を表していますか
infinite_loop
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
どこに何を書くのか?
どこに何を書くのか?
pospome
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
増田 亨
Rails A/B testing by split gem
Rails A/B testing by split gem
Ryuma Tsukano
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
Hiroshi SHIBATA
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
インセプションデッキの紹介
インセプションデッキの紹介
lita
超簡単!Subversion入門 概念編
超簡単!Subversion入門 概念編
Shin Tanigawa
HTTP/2, QUIC入門
HTTP/2, QUIC入門
shigeki_ohtsu
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
Takafumi ONAKA
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
MinoDriven
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
Weitere ähnliche Inhalte
Was ist angesagt?
Rails A/B testing by split gem
Rails A/B testing by split gem
Ryuma Tsukano
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
Dockerを支える技術
Dockerを支える技術
Etsuji Nakai
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Akito Tsukahara
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
Hiroshi SHIBATA
Git flowの活用事例
Git flowの活用事例
Hirohito Kato
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
貴仁 大和屋
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
Genya Murakami
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
「伝わるチケット」の書き方
「伝わるチケット」の書き方
onozaty
インセプションデッキの紹介
インセプションデッキの紹介
lita
超簡単!Subversion入門 概念編
超簡単!Subversion入門 概念編
Shin Tanigawa
HTTP/2, QUIC入門
HTTP/2, QUIC入門
shigeki_ohtsu
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
Takafumi ONAKA
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
MinoDriven
寫給大家的 Git 教學
寫給大家的 Git 教學
littlebtc
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
Tomohisa Kusukawa
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Koichiro Matsuoka
Was ist angesagt?
(20)
Rails A/B testing by split gem
Rails A/B testing by split gem
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
Dockerを支える技術
Dockerを支える技術
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
Web api開発をするなら ドキュメントは自動生成にしておこう__ph_per_kaigi2021_
RailsGirls から始める エンジニアリングはじめの一歩
RailsGirls から始める エンジニアリングはじめの一歩
Git flowの活用事例
Git flowの活用事例
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
中3女子が狂える本当に気持ちのいい constexpr
中3女子が狂える本当に気持ちのいい constexpr
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
「伝わるチケット」の書き方
「伝わるチケット」の書き方
インセプションデッキの紹介
インセプションデッキの紹介
超簡単!Subversion入門 概念編
超簡単!Subversion入門 概念編
HTTP/2, QUIC入門
HTTP/2, QUIC入門
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
クソコード動画「Managerクラス」解説
クソコード動画「Managerクラス」解説
寫給大家的 Git 教學
寫給大家的 Git 教學
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Redmineとgitの 連携利用事例
Redmineとgitの 連携利用事例
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
DDDのモデリングとは何なのか、 そしてどうコードに落とすのか
Andere mochten auch
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Teppei Sato
Jsテストツール 〜 sails.js×mochaでtest 〜 (1)
Jsテストツール 〜 sails.js×mochaでtest 〜 (1)
Tomokatsu Iguchi
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Shunji Konishi
Heroku meetup 13_shuttlebus-heroku
Heroku meetup 13_shuttlebus-heroku
masaoki_ohashi
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
masaoki_ohashi
Herokuのログ解析ツール
Herokuのログ解析ツール
Shunji Konishi
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
Shunji Konishi
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
masaoki_ohashi
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
Ayumu Aizawa
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Shunji Konishi
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
Shunji Konishi
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
Hayashi Yuichi
TDDBC Fukuoka Day1
TDDBC Fukuoka Day1
Takuto Wada
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
Yohei Yasukawa
Andere mochten auch
(16)
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
Jsテストツール 〜 sails.js×mochaでtest 〜 (1)
Jsテストツール 〜 sails.js×mochaでtest 〜 (1)
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
Heroku meetup 13_shuttlebus-heroku
Heroku meetup 13_shuttlebus-heroku
HerokuからSalesforceを使ってみた
HerokuからSalesforceを使ってみた
Herokuのログ解析ツール
Herokuのログ解析ツール
Salesforceのハッカソンに参加した話
Salesforceのハッカソンに参加した話
クラウド x IoT実践事例のご紹介
クラウド x IoT実践事例のご紹介
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
カスタムアプリケーションプラットフォーム Salesforce Heroku~ ソーシャルアプリケーションを支える技術 ~
Javascriptのあれやこれやをまとめて説明してみる
Javascriptのあれやこれやをまとめて説明してみる
Salesforce連携のためのOData入門
Salesforce連携のためのOData入門
Gulp入門 - コーディングを10倍速くする
Gulp入門 - コーディングを10倍速くする
TDDBC Fukuoka Day1
TDDBC Fukuoka Day1
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Railsチュートリアルの歩き方 (第4版)
Railsチュートリアルの歩き方 (第4版)
Ähnlich wie MochaとChaiでやるJavaScriptテスト
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
ssuser79e118
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
ShinodaYukihiro
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
stomita
PHP on Cloud
PHP on Cloud
Akio Katayama
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Masataka MIZUNO
Start chestnut
Start chestnut
izy00466
Start chestnut
Start chestnut
Ichise Masashi
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
Hiromasa Tanaka
Yesodを支える技術
Yesodを支える技術
Hiromi Ishii
PHP基礎勉強会
PHP基礎勉強会
Yuji Otani
Ähnlich wie MochaとChaiでやるJavaScriptテスト
(10)
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
Awsでのsql高可用構成 Always On
Apexコアデベロッパーセミナー(Apexコード)071010
Apexコアデベロッパーセミナー(Apexコード)071010
PHP on Cloud
PHP on Cloud
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
Start chestnut
Start chestnut
Start chestnut
Start chestnut
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
Yesodを支える技術
Yesodを支える技術
PHP基礎勉強会
PHP基礎勉強会
Mehr von Shunji Konishi
SendGridサンプルの紹介
SendGridサンプルの紹介
Shunji Konishi
セキュリティの考え方
セキュリティの考え方
Shunji Konishi
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
Shunji Konishi
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
Shunji Konishi
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi
Heroku tips1
Heroku tips1
Shunji Konishi
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Shunji Konishi
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Shunji Konishi
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Shunji Konishi
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Shunji Konishi
Play1 to Play2
Play1 to Play2
Shunji Konishi
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Shunji Konishi
Excel2 canvas
Excel2 canvas
Shunji Konishi
特盛!Heroku
特盛!Heroku
Shunji Konishi
文字コードのお話
文字コードのお話
Shunji Konishi
High traffic questionnaire site
High traffic questionnaire site
Shunji Konishi
Mehr von Shunji Konishi
(16)
SendGridサンプルの紹介
SendGridサンプルの紹介
セキュリティの考え方
セキュリティの考え方
一番簡単なWebSocketの試し方
一番簡単なWebSocketの試し方
WebSocketでリアルタイムクイズアプリを作ってみた
WebSocketでリアルタイムクイズアプリを作ってみた
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Heroku tips1
Heroku tips1
Playframework1でSeleniumテスト
Playframework1でSeleniumテスト
Heroku Dyno再起動時の振る舞い
Heroku Dyno再起動時の振る舞い
Dyno cycling behavior of Heroku
Dyno cycling behavior of Heroku
Herokuで使えるRDBMS管理者ツール
Herokuで使えるRDBMS管理者ツール
Play1 to Play2
Play1 to Play2
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
Excel2 canvas
Excel2 canvas
特盛!Heroku
特盛!Heroku
文字コードのお話
文字コードのお話
High traffic questionnaire site
High traffic questionnaire site
Kürzlich hochgeladen
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Kürzlich hochgeladen
(11)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
MochaとChaiでやるJavaScriptテスト
1.
MochaとChaiでやる JavaScriptテスト 株式会社FLECT
小西俊司 2014/09/11
2.
Mochaとは JavaScript製のテストフレームワーク HTML内での実行とコマンド実行の両方をサポート
非同期処理を同期化して順番に実行出来る BDDスタイルとTDDスタイルの両方の記法をサポート Assertionライブラリは含まれていないので自分で選択
3.
Assertionライブラリ? Assert系、Should系、Expect系など複数の系統がある 書き方が違うだけでやっていることは同じ
assert.equal(a, 5); a.should.equal(5);//ObjectのPrototypeを拡張している Expect(a).to.equal(5); Assertだけでもライブラリ毎に多彩な書き方がある assert.ok assert.isObject assert.match
4.
Chaiとは Assert、Shoud、Expectのすべてをサポートしたライブラ リ
ただし実際に使用する場合は記法はどれかに統一した方が 良い 多分既存のAssertionライブラリの中では一番多機能
5.
インストール–HTML実行 mocha.js、mocha.css、chai.jsを参照可能なところにコ ピー
クライアントライブラリの取得はできるだけBowerを使 用した方が良い バージョン管理が楽になるので jQuery等のメジャーなライブラリはブラウザのキャッシュ を使うためにCDNを使うのもアリ bower install mocha --save-dev bower install chai --save-dev cpbower_components/mocha/mocha.* public/test cpbower_components/chai/chai.js public/test
6.
インストール–コマンド実行 npmでインストール mochaはコマンドを使用するのでグローバルインストー
ルする npminstall –g mocha npminstall chai --save-dev
7.
HTMLの書き方 Mochaとchai それ以外に必要なJS
(テスト対象のJS) BDDスタイル テストのJS テスト結果出力用のdiv(id=“mocha”) テストの実行 (PhantomJSでも実行可能)
8.
JSの書き方 FizzBuzzサンプル ここではテスト対象のメソッドも
同一ファイル内に書いてあるが 本来はテスト対象は外部にある BDDで使用するキーワードは describeとitの2つ ★describe 単純なグループ化 複数ネスとしても良い describe has some describes and some its. ★it テストケース it has some asserts. assertを使用する
9.
非同期サポート itのコールバック関数に 引数が宣言されている場合、
その引数に完了通知の コールバック関数が渡される その関数が実行されるまで 次のテストは実行されない (デフォルトでは2秒で タイムアウトする)
10.
before(after), beforeEach beforeはdescribe内で最初に一度だけ実行
beforeEachはdescribe内の各itを実行する前に毎回実行 (ネストしたdescribe内でも有効) after、afterEachはその逆 itと同様に引数を宣言することで非同期処理の完了待ち が可能
11.
タイムアウト タイムアウト デフォルト2000ms
コマンドラインオプション–tで設定可能 スロー判定 デフォルト75ms コマンドラインオプション–s で設定可能 describeまたはitのコールバック内で個別に設定すること も可能 this.timeout(5000); this.slow(3000);
12.
コマンド実行 テストの書き方はHTMLから実行する場合と同じ requireでNode.jsの各種モジュールが利用できる
HTTPのエンドポイントのテストを全部これでできないか と実験中 テストシナリオを決めて Http(s)モジュールでリクエストの実行とレスポンスの確認 Pgモジュールで更新されたデータを確認 Input, Output, Storageが検証可能なので多分良い感じ 画面操作の検証はSeleniumじゃないと無理
13.
Http(s)モジュール Node.js標準のhttpライブラリ びっくりするぐらいRaw
Cookieを自分でセットしないとならない POST文字列を自分でURLEncodeして組み立て Content-TypeとかContent-Lengthの計算も自力 何故かデフォルトでChunked ラッパーを開発中 jQuery#ajaxライクなdata引き渡し レスポンス完了時のコールバック Cookie等のHTTPヘッダも空気読んで追加 CSRFサポート
14.
Pgモジュール Windowsだとそもそもインストールが辛い node-gypでインストール時にバイナリをコンパイル
Python 2.7が必要 Visual Studioのインストールが必要(Express版で良いので無 償) ていうかもはや開発者はMacを使うか、VMを使用するべき そこを乗り切ればそれなりに使いやすいがやはりラッ パーは必要 HTMLテストからは実行不可
15.
PhantomJS HTMLテストをブラウザなしでコマンドで実行できる Mochaのテストを実行するためには以下のインストール
が必要 PhantomJS mocha-phantomjs(グローバル) 以降、mocha-phantomjsコマンドでテストが実行可能 ★注意 PhantomJSでの実行は Fileプロトコルでの実行になるので JSやCSSの参照に「//」始まりや 絶対パスを使用してはならない
16.
さらに自動化したい場合 Grunt grunt-mocha(Client
side. 要PhantomJS) Grunt-mocha-test(Server side) 各種CIツール phantomjsがあればなんとかなるはず
17.
メール送信のテストも出来るかも メールテスト用のサーバをHeroku上に作成するというア イデアをちょっと思いついた
例えば新規ユーザ作成時にメールでユーザの存在確認を するような処理 Mochaからユーザ登録のURLをキック メールアドレスはSendGridのParseAPI宛にしておく テストサーバが受信メールをフックしてキャッシュに保存 Mochaからはテストサーバのポーリング、またはWebSocket で完了待ち メールは数分以上遅延することがあるのが難点 が、うまくすれば汎用的なものを作れる可能性はある HerokuButtonで公開するアプリとしてちょうど良いかも
18.
まとめ 周辺ツールを整備していけばかなり、汎用的なテスト ツールになる可能性はある
エンドポイントを叩くテストはある程度自動生成できる と思う テストしやすいエンドポイント設計をすることも重要 できるだけレスポンスはJSONにする Seleniumでのテストやサーバサイドの単体テストが不要 になるわけではない が、必要なテスト数は減らせる
Jetzt herunterladen