この方法の使用は基本的に仕事でほとんどのタスクを完了することができることを思い出して、それを達成するためのいくつかの機能は非常に面倒で、例えば、字符串相等性比较不区分大小写,字符串是否匹配某一正则规则,集合中的每一个(某一个)元素是否符合特定规则
というように、NUnitのは、通常のアサーションを達成することがより困難のいくつかを実装するために使用されるいくつかの具体的な方法を提供拡張型およびメソッド。
ここではいくつかされているStringAssertは、以下の方法を入力します
StringAssert.AreEqualIgnoringCase(文字列期待、実際の文字列)
二つの文字列は、大文字と小文字を区別しない場合にアサート同等である場合、この方法が使用され、2つのパラメータを提供する必要があり、最初のサンプルは、もはや、この方法は比較的簡単である。第二は、実際の結果であり、利用可能な期待される結果ではありません。
NUnitの2つのパラメータを提供する必要がある多くの方法があることに注意してください、通常下状況が最初の結果が期待されており、第二は、実際の結果であります
StringAssert.Contains
文字列は最初のパラメータが文字列が含まれている前記別の文字列を含むかどうかをアサートするために、第二は、実際の文字列は、音符セマンティクスが特に明らかではないが、あります
[Test]
public void DemoTest()
{
StringAssert.Contains("hello", "hello,world");
}
このコードは、成功を返します
StringAssert.StartsWith
アサート文字列は、(いくつかの)文字で始まるかどうか
[Test]
public void DemoTest()
{
StringAssert.StartsWith("h", "hello,world");
}
StringAssert.EndsWith
そしてStringAssert.StartsWith類似し、文字列クラスは、このメソッドを持って、私たちはもっとよく知っていると信じて
StringAssert.IsMatch
指定された文字列のアサーションは、通常のルールに合致するかどうか
[警告]この方法は、感知スイッチありません
ここでの2つです
文件(目录)
アサーション方法以下の二つのクラスに関連するアサーションクラスFileAssertとDirectoryAssertは基本的に同じですが、アサーションは、たとえば以下のディレクトリがアサートされているファイル、。であるFileAssert
FileAssert.AreEqual
この方法は、2つのファイルは同じファイルであるかどうかをアサートするために使用され、文字列引数を受け入れ
これは、文字列のパスがないディレクトリやファイルが存在しない、ファイルを指している必要があり、注目されるべきです。
FileAssert.Exists
ファイルは、アサーション、受け入れのために存在するかどう字符串参数
かFileInfo
のパラメータとして
同様DirectoryAssert方法、及びこれらの方法はアサートに対応する反対方向である、名前ではない前記方法は、容易に理解されます
ユニットテストプロセス、私たちはしばしば、コレクションに対処する必要があり、NUnitの提供でCollectionAssertのコレクション型のアサーションを扱うためのクラスが
ここではどのようなクラスは、次の主張です
CollectionAssert.AllItemsAreInstancesOfType
特定の種類の要素があるかどうかのアサーションの集合。
[Test]
public void DemoTest()
{
ArrayList ar = new ArrayList {"a", "b", "c"};
CollectionAssert.AllItemsAreInstancesOfType(ar, typeof(string));
}
上記の主張は、私たちがArrayListに追加したので、文字列型の要素に満ちていた、成功を返します。
最初は実際のコレクション、第二が期待されているタイプであり、多くのアサーションは最初の引数の型を楽しみにしている、第二は、実際の型であり、この方法は、反対であることに留意すべきです
サポート親クラスのこのタイプは、例えば、場合
typeof(object)
それができる、意味論の観点から、要素は文字列型で、オブジェクト型は、通されます
CollectionAssert.AllItemsAreNotNull
すべての要素のコレクションNULLではない、すなわちコレクションがnull要素が含まれていない、このメソッドはパラメータを1つだけ持っていると主張するために、我々は、着信コレクションを判断する必要があります
CollectionAssert.AllItemsAreUnique
私たちの内部要素のコレクションを主張するための要素の重複セットが存在しないことを、すべてユニークです。
[警告]あなたはクラス型をオーバーライドする必要がある場合には、この方法は、大型のカスタムコンパレータのサポートを提供していないことに留意すべきである、それだけでは、そのような文字列、int型、日時などのように単純型、場合にのみを主張するために使用することができます
equals
し、gethashcode
しかし、我々は、通常はこれをしないが、複雑なタイプかどうかを判断する場合にのみ、クラス外のコンパレータを提供するために、我々は後に紹介します
ここでは、この問題を説明するための一例です
[Test]
public void DemoTest()
{
Person[] psn = new Person[] {
new Person { Name="sto",Age=32,BirthDay=DateTime.Today.AddYears(-10)},
new Person { Name="sto",Age=32,BirthDay=DateTime.Today.AddYears(-10)}};
CollectionAssert.AllItemsAreUnique(psn);
}
Persnなく、同じオブジェクトが、実際のビジネスは、二つのオブジェクトのプロパティは、正確に等しい我々は結果が予想以上に、彼らは同じだと思うときうち二つが新しいので、上記のコードは、テストに合格することではありません
CollectionAssert.AreEqual
この方法は、たIComparerを引数として提供提供するが、コレクションは非常に便利たIComparerないが、二組をアサートするため(二組は、要素が単純なオブジェクトである場合、オブジェクトは、この方法によって複雑にされた場合、非常に便利ではない、等しいです)
[警告]二つは(勿論)等しくなければならない。ここでの要素のセットの最初の数に等しく設定、要素の第二セット
顺序必须一致的
別の点が、上記の二つの注文要素の一貫性を述べたように、注目すべきである、と等しい考える実行時の型と一致していることに留意すべきで、二組の
类型不必一样
、例えば、アレイであり、一つはリストであり、泛型参数也不必须一样
限り、実行時の型が同じであるとして、
以下のコードを考えてみましょう
[Test]
public void DemoTest()
{
int[] a = {3, 4, 5};
List<object> b =new List<object> {3, 4, 5};
CollectionAssert.AreEqual(a, b);
}
AとBの異なるコレクション型の2セットがあり、ジェネリック型は同じではありませんが、実行時間が同じであるので、上記のコードの実行が成功ステータスを返します
CollectionAssert.AreEquivalent
この方法は、同等の要素の二組は、要素の二組の同じタイプの場合、その数は、上記の方法に比べて、同等とみなされる、そうでないかどうかを決定するために使用されます关心顺序
[Test]
public void DemoTest()
{
int[] a = {3, 4, 5};
List<object> b =new List<object> {4,3, 5};
CollectionAssert.AreEquivalent(a, b);
}
上記のコードのテストを通じ
CollectionAssert.Contains
コレクションは要素が含まれているかどうかを主張するために
なお、決定にコレクション要素を含んでいるかどうかを、指定された要素および要素が実行している限り、同じ特定の型を有し、構成する要素の同じ値、即ち、その組
次のコードスニペットを考えてみましょう
[Test]
public void DemoTest()
{
int[] a = {3, 4, 5};
object element = 4;
List<object> b =new List<object> {element,3, 5};
CollectionAssert.Contains(b, 4);
}
4のint型の値の要素が含まれていない上記のコードセグメントにおけるBセットは、唯一の要素4は、型オブジェクトであり、それは、真の実行時int型であるため、上記のテストが渡されます。
CollectionAssert.IsEmpty
セット、空のセットをアサートするために、すなわち要素数が0であります
CollectionAssert.IsOrdered
要素はによって設定されるアサートするための正のシーケンスの構成、いわゆる正のシーケンスは、通常の順序の順に配置されアラビア数字又は文字でテーブルを参照します。
CollectionAssert.IsSubsetOf
別のセット内のサブセットのセットは、上記と同じであるかどうかを決定するため、これら二組のセットと同じタイプである必要はない、完全に別の組に含まれる長い要素(アレイとすることができる、リストです)それは別のセットのサブセットであることをコレクション、すなわち、
限り、完全に別のセットに含まれるコレクション要素、必ずしも同じ順序として
CollectionAssert.IsSupersetOf
セットをアサートするために決定された使用のようなサブセットのか別のセットのスーパーセットです。
上記の方法のほとんどは反対を決定する方法を持っている、マルチないの名前は、ここに記載されていません