BDD에 영향을받는 C# 테스트 라이브러리 요리
앱베이어 :
JustBehave는 C# 테스트를 BDD 스타일 컨텍스트 및 시나리오로 구성하는 데 도움이되는 작은 .NET 라이브러리입니다. Nunit 과 Xunit을 모두 지원하며 선택한 조롱 프레임 워크를 사용하여 자동 의존성 구성을위한 자동 픽스처 에 따라 다릅니다.
JustBehave는 Specflow 및 Gherkin Language와 같은 프레임 워크에 의존하지 않고 내부 테스트가 일관되고 제정신 BDD 패턴을 따를 수 있도록 작성되었습니다. JustBehave를 사용하여 작성된 테스트는 추가 툴링 또는 플러그인이 필요하지 않고 구성되고 구성됩니다.
사전 반품 :이 프로젝트는 .NET v4.0으로 내장되어 있습니다.
Nuget을 통해 :
PM> Install-Package JustBehave
테스트 프레임 워크와 함께 테스트 프로젝트에 패키지를 설치 한 후에는 표준 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
Nunit Testing Framework의 조건에 주석 을 달 때 사용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의 핵심은 "주어진 언제" 패턴을 시행하는 테스트의 기본 클래스입니다. 각 테스트 파일은 주어진 , 언제 , 그리고 다중 주장 을 가진 단일 컨텍스트를 나타냅니다.
더 광범위한 테스트는 이전 테스트 클래스에서 상속을 받고 주어진 또는 단계 를 무시하고 추가 조건 을 추가하여 시나리오를 구성하여 구성됩니다. 네임 스페이스를 사용하여 관련 시나리오를 그룹화하고 컨텍스트를 나타내는 테스트 클래스 이름을 제공 할 것으로 예상됩니다.
예를 들어, 일부 결제 인프라를 테스트 할 때는 다음과 같은 파일 세트로 끝날 것으로 예상됩니다.
/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 > ( ) ;
}
JustBehave가 종속성 그래프를 구성하려면 다음 중 하나를 작성해야합니다.
테스트중인 시스템 구성을 무시하려면 CreateSystemUnderTest()
재정의하고 유효한 인스턴스를 반환해야합니다.
protected override SomethingUnderTest CreateSystemUnderTest ( )
{
return new SomethingUnderTest ( ) ;
}
또는 AutoFixture를 구성하려면 유효한 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 ( "라이센스")에 따라 라이센스가 부여되었습니다. 라이센스를 준수하는 것 외에는이 파일을 사용할 수 없습니다. 라이센스 사본은이 저장소의 라이센스 파일에 있습니다.
이 파일은 명시 적 또는 묵시적 보증이나 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오.