Enviar pesquisa
Carregar
Qunit再入門 (Version 1.10.0 編)
•
12 gostaram
•
4,298 visualizações
Koji Nakamura
Seguir
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 33
Baixar agora
Baixar para ler offline
Recomendados
例外設計における大罪
例外設計における大罪
Takuto Wada
Spockの基礎
Spockの基礎
Kiyotaka Oku
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
Hiroshi Nakamura
Unit test in android
Unit test in android
Tatsuya Maki
Gaej Jdo
Gaej Jdo
katsu.taira
ゲンバのSwift
ゲンバのSwift
Yuichi Adachi
xUnit Test Patterns - Chapter19
xUnit Test Patterns - Chapter19
Takuto Wada
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
kimukou_26 Kimukou
Recomendados
例外設計における大罪
例外設計における大罪
Takuto Wada
Spockの基礎
Spockの基礎
Kiyotaka Oku
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
Hiroshi Nakamura
Unit test in android
Unit test in android
Tatsuya Maki
Gaej Jdo
Gaej Jdo
katsu.taira
ゲンバのSwift
ゲンバのSwift
Yuichi Adachi
xUnit Test Patterns - Chapter19
xUnit Test Patterns - Chapter19
Takuto Wada
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
Eclipse ADTとAndroidStudio両方で動かせる開発環境構築
kimukou_26 Kimukou
TDDワークショップ(第2回)
TDDワークショップ(第2回)
Yoshihiro Furukawa
xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16
Takuto Wada
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
kimukou_26 Kimukou
xUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Takuto Wada
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
OSC京都2011
OSC京都2011
haganemetal
Inside Frontend 2 #insideFE
Inside Frontend 2 #insideFE
Hiroyuki Anai
PerlとSQLのいろいろ
PerlとSQLのいろいろ
Takuya Tsuchida
HTMLの要素の選び方
HTMLの要素の選び方
TENTO_slide
PFDS 10.2.1 lists with efficient catenation
PFDS 10.2.1 lists with efficient catenation
昌平 村山
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
TDD
TDD
Tetsuya Hasegawa
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Uehara Junji
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
Keep yourself up to date
Keep yourself up to date
信之 岩永
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
AyakaNishiyama
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
Junit4
Junit4
ichikaz3
Mais conteúdo relacionado
Mais procurados
TDDワークショップ(第2回)
TDDワークショップ(第2回)
Yoshihiro Furukawa
xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16
Takuto Wada
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
kimukou_26 Kimukou
xUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Takuto Wada
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
なおき きしだ
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
JPCERT Coordination Center
明日から使える Java SE 7
明日から使える Java SE 7
Yuichi Sakuraba
OSC京都2011
OSC京都2011
haganemetal
Inside Frontend 2 #insideFE
Inside Frontend 2 #insideFE
Hiroyuki Anai
PerlとSQLのいろいろ
PerlとSQLのいろいろ
Takuya Tsuchida
HTMLの要素の選び方
HTMLの要素の選び方
TENTO_slide
PFDS 10.2.1 lists with efficient catenation
PFDS 10.2.1 lists with efficient catenation
昌平 村山
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
y_taka_23
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
JustSystems Corporation
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
bitter_fox
TDD
TDD
Tetsuya Hasegawa
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Uehara Junji
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
JPCERT Coordination Center
Keep yourself up to date
Keep yourself up to date
信之 岩永
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
AyakaNishiyama
Mais procurados
(20)
TDDワークショップ(第2回)
TDDワークショップ(第2回)
xUnit Test Patterns - Chapter16
xUnit Test Patterns - Chapter16
Layout analyzerでのgroovyの利用について
Layout analyzerでのgroovyの利用について
xUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
明日から使える Java SE 7
明日から使える Java SE 7
OSC京都2011
OSC京都2011
Inside Frontend 2 #insideFE
Inside Frontend 2 #insideFE
PerlとSQLのいろいろ
PerlとSQLのいろいろ
HTMLの要素の選び方
HTMLの要素の選び方
PFDS 10.2.1 lists with efficient catenation
PFDS 10.2.1 lists with efficient catenation
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
思ったほど怖くない! Haskell on JVM 超入門 #jjug_ccc #ccc_l8
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
「書ける」から「できる」になれる! ~Javaメモリ節約ノウハウ話~
Introduction to JShell #JavaDayTokyo #jdt_jshell
Introduction to JShell #JavaDayTokyo #jdt_jshell
TDD
TDD
JJUG CCC 2012 Real World Groovy/Grails
JJUG CCC 2012 Real World Groovy/Grails
Javaセキュアコーディングセミナー東京第4回演習の解説
Javaセキュアコーディングセミナー東京第4回演習の解説
Keep yourself up to date
Keep yourself up to date
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
Semelhante a Qunit再入門 (Version 1.10.0 編)
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Koji Nakamura
Junit4
Junit4
ichikaz3
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
Saiki Iijima
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unit
higaki
Sencha ug3 siesta_share
Sencha ug3 siesta_share
久司 中村
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
Shinya Mochida
第一回Miim勉強会
第一回Miim勉強会
Yuri Kawamoto
About func unit
About func unit
gray Space
あんなテスト、こんなテスト(this and that about testing)
あんなテスト、こんなテスト(this and that about testing)
Takuya Tsuchida
tdd4cpp demo
tdd4cpp demo
Kaoru NAKAMURA
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3
Tomoyuki Sato
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
Tatsumi Naganuma
20141129-dotNet2015
20141129-dotNet2015
Takayoshi Tanaka
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
大(中)規模Java script開発について
大(中)規模Java script開発について
Yuki Tanaka
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテスト
Yohei Sato
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
Yuta Kawadai
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
Hisateru Tanaka
CLRH_120414_WFTDD
CLRH_120414_WFTDD
Tomoyuki Obi
About Jobs
About Jobs
Shinichi Kozake
Semelhante a Qunit再入門 (Version 1.10.0 編)
(20)
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
Junit4
Junit4
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Ruby初級者向けレッスン 第46回 ─── Test::Unit
Sencha ug3 siesta_share
Sencha ug3 siesta_share
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
第一回Miim勉強会
第一回Miim勉強会
About func unit
About func unit
あんなテスト、こんなテスト(this and that about testing)
あんなテスト、こんなテスト(this and that about testing)
tdd4cpp demo
tdd4cpp demo
ありえるえりあ勉強会@五反田~テスト編~ Part3
ありえるえりあ勉強会@五反田~テスト編~ Part3
Xtend - Javaの未来を今すぐ使う
Xtend - Javaの未来を今すぐ使う
20141129-dotNet2015
20141129-dotNet2015
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
大(中)規模Java script開発について
大(中)規模Java script開発について
Tokyor14 - R言語でユニットテスト
Tokyor14 - R言語でユニットテスト
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
CLRH_120414_WFTDD
CLRH_120414_WFTDD
About Jobs
About Jobs
Qunit再入門 (Version 1.10.0 編)
1.
QUnit 再入門
(Version 1.10.0 編) 12年12月12日水曜日
2.
自己紹介
@kozy4324 JS/AS3.0でフロントエンド開発 最近はObjective-C 12年12月12日水曜日
3.
QUnitとは?
使い方(ミニマム) 使い方(ケーススタディ) 12年12月12日水曜日
4.
QUnitとは?
使い方(ミニマム) 使い方(ケーススタディ) 12年12月12日水曜日
5.
http://qunitjs.com/ 12年12月12日水曜日
6.
QUnitとは?
JavaScriptのユニットテスティン グフレームワーク jQueryの開発に利用されている MITライセンス 12年12月12日水曜日
7.
特徴
シンプルなAPI Webブラウザ上で動くJSがメイン ターゲット HTMLレポート 非同期処理テストのサポート DOM fixture Node.jsやRhino上でも動く 12年12月12日水曜日
8.
QUnitとは?
使い方(ミニマム) 使い方(ケーススタディ) 12年12月12日水曜日
9.
前準備
HTMLを作成 qunit.jsとqunit.cssを読み込む テスト対象のjsを読み込む テストコードのjsを読み込む id="qunit"の要素を追加 12年12月12日水曜日
10.
サンプルHTML
<!DOCTYPE html> <html> <head> titileは任意だが設定推奨 <meta charset="utf-8"> テスト結果のマークを付与してくれる <title>QUnit Example</title> <link rel="stylesheet" href="qunit-1.10.0.css"> <script src="qunit-1.10.0.js"></script> <script src="MyClass.js"></script> <script src="MyClassTest.js"></script> </head> <body> <div id="qunit"></div> </body> テスト結果がこの要素に出力される </html> 12年12月12日水曜日
11.
API(ミニマム)
test() Assert ok() equal(), notEqual() deepEqual(), notDeepEqual() strictEqual(), notStrictEqual() 12年12月12日水曜日
12.
これだけ知ってれば
テスト書けます 12年12月12日水曜日
13.
書いてみる
test("第1引数にtest名を記述", function() { var result = myFunc1(); ok(result, "resultがtrueでテストをパス"); }); test("論理的な単位でテストをまとめるとよい", function() { var result = myFunc2(); equal(result, "hoge", "2値の比較はequalを利用"); }); test("オブジェクトの比較はdeepEqual()", function() { var obj = myFunc3(); deepEqual(obj, {a:1, b:{c:1}}, "再帰的にチェック可能"); }); 12年12月12日水曜日
14.
equal()とstrictEqual()
equal()は「==」で比較 strictEqual()は「===」で比較 JSで 1 == "1" は true なのよ 12年12月12日水曜日
15.
QUnitとは?
使い方(ミニマム) 使い方(ケーススタディ) 12年12月12日水曜日
16.
Q. 共通処理をまとめたい
test("test 1", function() { var myInstance = new MyClass(); equal(myInstance.getHoge(), "hoge"); }); test("test 2", function() { var myInstance = new MyClass(); equal(myInstance.getFoo(), "foo"); }); test("test 3", function() { var myInstance = new MyClass(); equal(myInstance.getBar(), "bar"); }); 12年12月12日水曜日
17.
A. module()とsetup/teardown
module("module A", { setup: function() { this.myInstance = new MyClass(); } }); test("test 1", function() { equal(this.myInstance.getHoge(), "hoge"); }); test("test 2", function() { equal(this.myInstance.getFoo(), "foo"); }); test("test 3", function() { equal(this.myInstance.getBar(), "bar"); }); 12年12月12日水曜日
18.
Q. Assert回数をチェックしたい
test("test 1", function() { // myMethodはコールバック関数を受け取る myMethod(function() { ok(true); }); // コールバック関数が実行されないとこのテストはパスする // コールバックされたことをテストしたい... }); 12年12月12日水曜日
19.
A. expect()
test("test 1", function() { expect(1); myMethod(function() { ok(true); }); // Assertされないとfail }); test("test 2", 1, function() { myMethod(function() { ok(true); }); // test()の第2引数にも指定できる }); 12年12月12日水曜日
20.
Q. 例外の振る舞いをチェックしたい
test("test 1", function() { myFunc(); // myFunc()が例外をthrowするかどうか // どう書く...? }); 12年12月12日水曜日
21.
A. throws()
test("test 1", function() { throws(function() { myMethod(); }, "myMethodが例外をthrowするとこのテストはパスする"); }); test("test 1", function() { throws(function() { throw new CustomError() }, CustomError, // 第2引数にはErrorクラス or RegExp "throwされる例外の型や含まれるメッセージでもテスト可能"); }); 12年12月12日水曜日
22.
Q. 非同期処理のテストがしたい
test("test 1", function() { expect(1); jQuery.get("data.json", function(data) { equal(data.hoge, "hoge"); }); }); test("test 2", function() { ok(true); }); // このテストは正しく実行されない // "test 1"のAssertが実行される前に"test 2"が開始される... 12年12月12日水曜日
23.
A. start(), stop()
test("test 1", function() { expect(1); jQuery.get("data.json", function(data) { equal(data.hoge, "hoge"); start(); // start()で次テスト実行が開始される }); stop(); // stop()で次テスト実行が保留される }); asyncTest("test 2", function() { expect(1); jQuery.get("data.json", function(data) { equal(data.hoge, "hoge"); start(); }); // asyncTestにするとstop()を省略できる }); 12年12月12日水曜日
24.
Q. テスト毎にDOMクリアしたい
test("test 1", function() { document.getElementById("div").innerHTML = html; // テスト... }); test("test 2", function() { document.getElementById("div").innerHTML = html; // テスト... }); test("test 3", function() { document.getElementById("div").innerHTML = html; // テスト... }); 12年12月12日水曜日
25.
A. id="qunit-fixture"な要素を
利用すると幸せになれる /** * id="qunit-fixture"の要素はテスト毎に復元される * (config.fixtureに復元用のinnerHTMLが保持される) */ test("test 1", function() { document.getElementById("qunit-fixture").innerHTML = "hi"; notEqual( document.getElementById("qunit-fixture").innerHTML, QUnit.config.fixture); }); test("test 2", function() { equal( document.getElementById("qunit-fixture").innerHTML, QUnit.config.fixture); }); 12年12月12日水曜日
26.
Q. 特定のテストだけ実行したい 12年12月12日水曜日
27.
A. HTMLレポート画面から
特定テスト実行の操作が可能 モジュール毎の 絞り込み実行が可能 カラムダブルクリックで 該当テストのみ再実行 12年12月12日水曜日
28.
Q. 変数のグローバル汚染を
検出したい 12年12月12日水曜日
29.
A. 変数グローバル汚染
チェックモードがある 選択するとテスト再実行 汚染があれば該当テストがfailする 12年12月12日水曜日
30.
Q. Mockを利用した
振る舞いのテストをしたい 12年12月12日水曜日
31.
A. Sinon.JSのsinon-qunitを利用
(別プロダクトなので説明割愛) 12年12月12日水曜日
32.
おまけ API変更点
Assert API CommonJS Unit Testing互換に equals → equal same → deepEqual raises → throws Assertのスコープ 推奨はtestコールバックの引数 test("test", function(assert) { assert.ok(ok); }); 12年12月12日水曜日
33.
Let's QUnit !!! 12年12月12日水曜日
Notas do Editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Baixar agora