何人気のある命名規約のためのユニットテスト?[定休日]
-
01-07-2019 - |
質問
一般
- と同様の基準はすべての試験までを実施。
- 明らかにするものとし、各試験状態です。
- 具体的に期待。
例
1)MethodName_StateUnderTest_Expectedbehavior
Public void Sum_NegativeNumberAs1stParam_ExceptionThrown()
Public void Sum_NegativeNumberAs2ndParam_ExceptionThrown ()
Public void Sum_simpleValues_Calculated ()
ソース: ネーミングの基準ユニットテスト
2)分離の各単語はアンダースコア
Public void Sum_Negative_Number_As_1st_Param_Exception_Thrown()
Public void Sum_Negative_Number_As_2nd_Param_Exception_Thrown ()
Public void Sum_Simple_Values_Calculated ()
その他
- 終了方法名 試験
- Startメソッドの名前とクラス名
他のヒント
これでも読み: 構造ユニットテスト
の構造がテストクラスのクラスが試されているわけです。これならわされているのです。だったものが異常だったのはた入れ子のクラスの各メソッドが試されているわけです。
例えば
using Xunit;
public class TitleizerFacts
{
public class TheTitleizerMethod
{
[Fact]
public void NullName_ReturnsDefaultTitle()
{
// Test code
}
[Fact]
public void Name_AppendsTitle()
{
// Test code
}
}
public class TheKnightifyMethod
{
[Fact]
public void NullName_ReturnsDefaultTitle()
{
// Test code
}
[Fact]
public void MaleNames_AppendsSir()
{
// Test code
}
[Fact]
public void FemaleNames_AppendsDame()
{
// Test code
}
}
}
この理由に
どうでもいち早く入手することができ試験を実施。すべての 試験はこの方法はまとめて表示されます。例えば、 ご利用のCTRL+M,CTRL+Oショートカットの崩壊によって、メソッドの本体で 簡単にスキャンテスト買って読んでみてくださのような仕様コードです。
私もこのようなアプローチ:
MethodName_StateUnderTest_Expectedbehavior
うに調整:
StateUnderTest_ExpectedBehavior
がそれぞれの試験に関しては、入れ子のクラス
を使うのは、条約の MethodName_DoesWhat_WhenTheseConditions
したがって、たとえば、:
Sum_ThrowsException_WhenNegativeNumberAs1stParam
しかし、何と言ってい多くの試験名のユニットテストの構造
- 手配
- 法
- を主張する
るものBDD/Gherkinの構文:
- され
- 時
- その
これに名前の試験の方法: UnderTheseTestConditions_WhenIDoThis_ThenIGetThis
なお例:
WhenNegativeNumberAs1stParam_Sum_ThrowsAnException
しかしいほうがずっと好のメソッド名が試されている最初で、その後の試験で配置するアルファベット順、アルファベット順ソートにドロップダウンボックスVisStudio、すべての試験のための1手法はまとめて表示されます。
いずれの場合いを分離する主な 部署 の名前をアンダースコア(_)、毎 言葉, でんで読みやすさという点の試験です。
つまり、私のように: Sum_ThrowsException_WhenNegativeNumberAs1stParam
以上 Sum_Throws_Exception_When_Negative_Number_As_1st_Param
.
私の名前は私の試験方法のようなその他の方法を用"PascalCasing"な見解又は分離機。私は、postfix 試験 方法は、原因が追加されました。法試験方法が示される属性 TestMethod.
[TestMethod]
public void CanCountAllItems() {
// Test the total count of items in collection.
}
ようにそれぞれの試験のクラスは試験片のクラスi、クラスの名前のメソッド名です。クラスの名前が含まれる試験方法はその名のように、クラスの試験postfixの"実験".
[TestClass]
public class SuperCollectionTests(){
// Any test methods that test the class SuperCollection
}
のための方法と試験により例外として扱うことが認め又は行動しない可能で、接頭辞の試験方法の言葉 できない.
[TestMethod]
[ExpectedException(typeOf(ArgumentException))]
public void CannotAddSameObjectAgain() {
// Cannot add the same object again to the collection.
}
私の名前convensionいての記事 "テスト駆動開発のヒント:試験命名規約&ガイドライン" のブライアン-無料でお試しいただけます。またこの記事です。
最初のセットの名前が読みやすくするためには、私のCamelCasing分離や言葉のunderbars別パーツにネーミングスキームです。
もちなどにも取り組んでいます。試験"のどこかのどちらにも、機能の名称又は、囲む名前空間またはクラスです。
ていく練習をするものではありませんね。一般的に、単体の試験のための方法とする様々なバリエーション方法をしてくれてありがとうございます簡単な方法)、そして書くより複雑なセットの試験方法を必要とするのです。私の名前の構造と通常の試験(ホールドオーバーからJUnit3).
を使用したいの'T'prefixのための試験、名前空間の授業の方法。
ているんですがすっきをフォルダを再現する、名前空間を作成し、試験のフォルダまたは個別プロジェクトのための試験を再現した生産構造の基本試験:
AProj
Objects
AnObj
AProp
Misc
Functions
AFunc
Tests
TObjects
TAnObj
TAnObjsAreEqualUnderCondition
TMisc
TFunctions
TFuncBehavesUnderCondition
私は簡単に見出すことができるものは、どうなのかを知りオリジナルコースに関係する場合、楽しく体験することができること、そしてこの試験はも肥大化しく).
一見何の変哲もないインタフェースを命名規約に従い、得られないときには、いくつかの混乱から"I'はい'T').
やすだけでコンパイルなしテストを実施していた。
で理論的にはとにかく、やめて小さい。