2009-04-01 6 views
8

を使用して、VSのテストを記述するために長いテストメソッドの名前を書く、私はそれが、これは何をテスト見ることが容易になりますがユニットテストを書くためのコードのドキュメントで

public void Can_User_Authenticate_With_Bad_Password() 
{ 
... 
} 

のように見えるのテストメソッドを書くことは非常に人気があることを知っています私はそれが醜いと思うし、自動生成されたドキュメント(砂浜やjavadocのような)でうまく表示されないと思う。

私は、テストされているメソッドであるネーミングスキーマとアンダースコアテストとテスト番号の使用について人々がどのように考えているか見ることに興味があります。次に、XMLコード文書(.net)またはjavadocコメントを使用して、何がテストされているかを記述します。

/// <summary> 
/// Tests for user authentication with a bad password. 
/// </summary> 
public void AuthenticateUser_Test1() 
{ 
... 
} 

これを行うことで、私は簡単にグループ一緒に私のテストは、彼らがテストしている方法で、私は特定のメソッドのために私が持ってテストすることがどのように見ることができ、そして、私はまだテストされているものの完全な説明があります。

データソース(xmlファイル)と比較して実行される回帰テストがあり、ソースコード(QAサル)にアクセスできないユーザーがこれらのファイルを更新する可能性があります。データソースを更新する場所。

答えて

1

どのようなドキュメントは、あなたのテストランナーに表示していUser

2

個人的には、長いメソッド名を使用することをお勧めします。唯一は何が起こるかを記述するが、 - 私は「長い名前」バージョンを好む

Can_AuthenticateUser_With_Bad_Password() 
19

:あなたも同様に、式の中のメソッド名を持つことができます。テストにの説明が必要な場合は、なぜそれが起こるかをとします(適切な場合はバグ番号付き)。

長い名前で、どのテストが失敗したかを伝えるメール(または何でも)を受け取ったとき、何が間違っているのかがはっきりしています。

私はそれしかし何をすべきかという点で、それを記述します。

LogInSucceedsWithValidCredentials 

LogInFailsWithIncorrectPassword 

LogInFailsForUnknownUser 

を、私はそれが自動生成されたドキュメントに悪く見えるという議論を購入していない - なぜあなたはテスト上のJavaDocを実行しています最初はですか?私がこれまでやっているとは言えません。あるいは、生成文書を要求しました。テストメソッドには通常パラメータがなく、何も返されないので、メソッド名で合理的に記述することができれば、必要なすべての情報が得られます。テストランナーは、実行されているテストをリストすることができなければなりません。そうしないと、IDEは利用可能なものを表示できません。私はHTML経由でナビゲートするよりも便利だと分かっています。ブラウザには、「Find Type」という名前の各単語の最初の文字だけを入力することはできません。たとえば

+0

私たちはすべてのコードにコメントします –

+0

データソース(xmlファイル)と比較して実行される回帰テストがあり、ソースコード(QAサル)にアクセスできない人がこれらのファイルを更新する可能性がありますどこでテストされているのかを読み取ることができ、データソースを更新する場所。 –

+0

テスト名がテストされているものを反映しているようにしてください:)これは、余分なドキュメントを生成するよりも優れています。 –

2

焦点を当てた(テスト)クラス。

なぜjavadocテストをしたいですか?

+0

テストしているものは読みやすくなりますが、すべてのコードをコメントします。 –

5

よう

AuthenticateDenieTest 
AuthenticateAcceptTest 

と名前のスーツ何かに

Can_User_Authenticate_With_Bad_Password 

の変更について?そうでない場合は、長い説明的な名前を使用する正当な理由です。

個人的に私は長い名前を好み、テストにコメントを追加する必要はほとんどありません。

0

グループがどのように我々はこの

/// <summary> 
/// Tests for user authentication with a bad password. 
/// </summary> 
public void AuthenticateUser_Test1_With_Bad_Password() 
{ 
... 
} 

のようなハイブリッドネーミングスキーマをやっについてどう思いますし、我々は両方のベストを引き出すと。

4

私は関連するトピックについて私の論文をしていますので、ここで私の2つのセントがあります:あなたのメソッドシグネチャにないものを伝えるためにドキュメンテーションを使用するときは、誰もがドキュメンテーション。

開発者が特定のもの(例えば、クラス内のメソッドの長いリストをスキャンして、探しているものが既に存在するかどうかを調べる)を探しているときには、ほとんどの人がドキュメントを読むのを邪魔しません。彼らは、他のマテリアル(例えば、JavaDocsを見るのに十分な長さのホバー)にリダイレクトしなければならず、容易に見て比較できる(例えば、名前)1種類の情報を扱いたい。

あなたの署名に関連するすべてのものを伝えることを強くお勧めします。

関連する問題