ただ食べて調理されたBDD影響を受けたC#テストライブラリ
Appveyor:
JustBehaveは、C#テストをBDDスタイルのコンテキストとシナリオに構築するのに役立つ小さな.NETライブラリです。 NunitとXunitの両方をサポートし、選択したモッキングフレームワークを使用して自動依存関係構築の自動フィクストールに依存します。
JustBehaveは、SpecflowやGherkin言語などのフレームワークに依存することなく、内部テストが一貫した正気のBDDパターンに従うことを保証するために書かれました。 JustBehaveを使用して記述されたテストは、追加のツールやプラグインを必要とせずに構造化および編成されています。
前提条件:プロジェクトは.NET v4.0で構築されています。
Nuget経由:
PM> Install-Package JustBehave
テストプロジェクトにパッケージをインストールしたら、選択したテストフレームワークとともに、標準のジャストビーヘイブテストファイルはXunitを使用して次のようになります。
//public class TestClassNamedAfterABddContext : XBehaviourTest<TheClassThatIWantToTest> // XUnit
public class TestClassNamedAfterABddContext : BehaviourTest < TheClassThatIWantToTest > // NUnit
{
private string _input ;
private string _result ;
protected override void Given ( )
{
_input = " my input " ;
}
protected override void When ( )
{
_result = SystemUnderTest . CallingAMethod ( _input ) ;
}
[ Then ]
public void ReturnsSomething ( )
{
_result . ShouldBe ( " something " ) ;
}
}
テストされた例の完全なセットは、プロジェクトJustBehave.testsのリポジトリに、例の名前空間に記載されています。
JustBehaveのコアは、いくつかの小さなクラスの上に構築されています。
BehaviourTest
ヌニットテストに継承されますXBehaviourTest
Xunitテストに継承されますThenAttribute
ヌニットテストフレームワークの条件を注釈するために使用されますFactAttribute
を使用しますこれは、コンベンションに続くテストクラスにつながります。
public class TestClassNamedAfterABddContext : BehaviourTest < TheClassThatIWantToTest >
{
protected override void Given ( ) { /*...*/ }
protected override void When ( ) { /*...*/ }
[ Then ] public void Assertion1 ( ) { /*...*/ }
[ Then ] public void Assertion2 ( ) { /*...*/ }
}
Nunit TestFixtureAttribute
はオプションであり、nunit Behaviourtestクラスのベースに実装されています。
JustBehaveのコアは、「与えられた、いつ、」パターンを実施するテストの基本クラスです。各テストファイルは、特定の、 when 、および複数のアサーションを持つ単一のコンテキストを表します。
より広範なテストは、以前のテストクラスから継承し、与えられたステップまたはステップをオーバーライドすることによって構築され、その後の条件を追加してシナリオを構築します。ネームスペースを使用して関連シナリオをグループ化し、コンテキストを表すテストクラス名を提供することを期待してください。
たとえば、一部の支払いインフラストラクチャをテストする場合、次のようなファイルのセットになることを期待してください。
/Tests/Payments/WhenIMakeAPayment.cs
/Tests/Payments/AndMyPaymentIsRejected.cs (inherits from WhenIMakeAPayment.cs)
/Tests/Payments/AndMyPaymentIsAccepted.cs (inherits from WhenIMakeAPayment.cs)
このスタイルに従うことで、このように見えるResharperテストランナーになります。
スローされた例外をアサートしたい場合は、次のように与えられた()ステップをセットアップします。
protected override void Given ( )
{
RecordAnyExceptionsThrown ( ) ;
}
スローされた例外は、次のことを主張するための手順で利用可能になります。
[ Then ]
public void ShouldSeeException ( )
{
ThrownException . ShouldBeTypeOf < NotSupportedException > ( ) ;
}
JustVehaveが依存書グラフを作成するには、次のいずれかが必要です。
テスト中のシステムの構築をオーバーライドするには、 CreateSystemUnderTest()
オーバーライドし、有効なインスタンスを返す必要があります。
protected override SomethingUnderTest CreateSystemUnderTest ( )
{
return new SomethingUnderTest ( ) ;
}
または、 AutoFixture
を構成するには、 CustomizeAutoFixture()
をオーバーライドする必要があります。
protected override void CustomizeAutoFixture ( Fixture fixture )
{
fixture . Customize ( new AutoRhinoMockCustomization ( ) ) ;
// You can add more customisations by adding the NuGet packages for
// Ploeh.AutoFixture.Auto**PopularMockingFramework** and hooking them up
}
バグが見つかった場合、機能リクエストがある場合、または強化または修正を貢献したい場合は、リポジトリに含まれる貢献ガイドラインに従ってください。
Copyright 2011-2014 Just Eat、Inc。またはその関連会社。無断転載を禁じます。
Apacheライセンス、バージョン2.0(「ライセンス」)に基づいてライセンスされています。ライセンスに準拠している場合を除き、このファイルを使用することはできません。ライセンスのコピーは、このリポジトリのライセンスファイルにあります。
このファイルは、明示的または暗示されているいずれかの種類の保証または条件なしで、「現状のまま」ベースで配布されます。ライセンスに基づく権限と制限を管理する特定の言語のライセンスを参照してください。