質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

Q&A

解決済

1回答

2318閲覧

QUnitでテストコードを書く時に、1つのメソッドの複数ケースを記述する良い方法を教えて下さい。

mitsuru793

総合スコア157

CoffeeScript

CoffeeScriptはプログラミング言語です。シンタックスシュガーの導入により、JavaScriptのコードに変換された後動作します。JavaScriptに比べ、可読性と簡潔性が向上しています。

JUnit

JUnitは、Javaで開発されたプログラムのユニットテストを行うためのアプリケーションフレームワークです。簡単にプログラムのユニットテストを自動化することができ、結果もわかりやすく表示されるため効率的に開発時間を短縮できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

テスト駆動開発

テスト駆動開発は、 プログラム開発手法の一種で、 プログラムに必要な各機能をテストとして書き、 そのテストが動作する必要最低限な実装を行い コードを洗練させる、といったサイクルを繰り返す手法の事です。

0グッド

0クリップ

投稿2015/07/25 15:26

クラスに用意したメソッドのテストをQUnitで行いたいです。QUnitでの記述方法は2パターン考えました。
パターン1のように、1つのメソッドは1つのtestに記述して、複数のケースを書く場合は、その数だけequalを記述した方がいいでしょうか?

他にも良いテストコードの書き方をご存知であれば教えて頂きたいです。
よろしくお願い致します。

coffee

1class Person 2 sayHello: -> (word) 3 #wordを含む文章を表示する 4 5######## 6# QUnit # 7######## 8# パターン1 9module "Person" 10test "sayHello", -> 11 # TODO 12 equal actual, expected, "引数wordを渡さないの時の動作" 13 14 #TODO 15 equal actual, expected, "引数が配列の時の動作" 16 17# パターン2 18module "sayHello" 19test "引数wordを渡さないの時の動作", -> 20 # TODO 21 22test "引数が配列の時の動作", -> 23 #TODO

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

どちらでも良いんじゃないですかね。

と言いつつ、JavaScriptでの話ではなくJavaやC/C++ですが、私は迷ったらパターン2にします。

もし、sayHelloのようなユニットテストの対象が状態を持たない(≒グローバル変数やインスタンス変数を使わない)ものなら、ひとつのmoduleにテスト目的を複数納めても良いと思いますが、sayHelloの呼び出しがグローバル変数やインスタンスに影響を及ぼすなら、影響を及ぼさないように分けます。

仕事での話ですが、たくさんテストをしたよってアピールしたい場合も2にします。

連続して呼んでも個々の呼び出しが他の呼び出しに影響しないことをテストする場合は、パターン1で書かざるを得ませんね。

投稿2015/08/23 08:24

tchofu

総合スコア87

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuru793

2015/08/23 12:03

どういう理由でパターン2にしているか、意図を知ることができ大変参考になりました。モジュールの分割がインスタンスに影響が出るかどうかというところが印象的でした。このような視点を文章として、明確に教えていただくと他の人に説明する際にも大変助かります。 > 連続して呼んでも個々の呼び出しが他の呼び出しに影響しないことをテストする 反対にパターン1のメリットも知ることができ大変満足です。 今回、tchofuさんの回答は私がとても知りたい部分を示してくれました。 ご回答、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問