2017-04-03 2 views
0

우리는 애플리케이션에서 마법사를 통해 실행되는 Specflow 시나리오를 사용하여 사용자와 매우 흡사하게 양식을 만듭니다. 이 시나리오를 호출 해 봅시다.Specflow 라인을 사용하여 Specflow 시나리오 전체에서 실행 하시겠습니까?

이제 작성된 양식을 채우고 채우는 다른 시나리오를 작성해야합니다. 이 시나리오 B를 호출 해 봅시다.

시나리오 B를 실행하려면 먼저 시나리오 A를 실행해야합니다. 시나리오 B에서 Background 키워드를 사용하여 전체 시나리오 A를 실행하는 방법이 있습니까? 아니면 다른 방법이 있습니까?

Backgroud: 
    Given I have done this 

Scenario: 
    Given another thing 
    And this other thing 

는 당신이를 만들 수 있습니다

답변

1

당신이 단계는 방법은 당신이 원하는 것을 수행 할 수 있도록, 다른 단계를 형성 호출 할 수 있습니다 백그라운드에서 사람들을 포함한 모든 단계를 호출하는 단계를 만드는 것입니다 이 같은 단계는

[Binding] 
public class MySteps: Steps //<- this is important if you want to reuse steps 
{ 

    Given("I have done eveything")] 
    public void GiveIHaveDoneEverything() 
    { 
     Given("I have done this"); 
     Given("another thing"); 
     Given("this other thing"); 
    } 
} 
+0

하지 마십시오. 단계 내에서 단계를 호출하는 것은 오이 기반 프레임 워크의 경우 나쁜 습관입니다. 대신 헬퍼 함수를 ​​만들어라 : iHaveDoneThis(); 또 다른 한가지(); thisOtherThing(); ' –

+0

@KyleFairns에서는 왜 이런 나쁜 습관을 고려해야할까요? 내가 도우미 기능 자체에 위배되는 것은 아니지만 그 나쁜 습관이 왜 불투명인지 –

+0

문제를 추적하기가 어렵고 실제로 유지 관리가 더 어려워집니다. 대신, 도우미 메서드를 사용하십시오. [이 토론] (https://groups.google.com/forum/#!msg/cukes/Zi5IIAr4dJg/S9A0cnNc0G4J)을 확인하면 더 자세히 설명합니다. 실제로 이런 일을하면 오류가 발생하지 않지만, 단계 내에서 단계 내의 한 걸음 내에서 실패 할 때 - 토끼 구멍을 내려야합니다. 왜 그것이 정확히 실패했는지. 도우미 함수를 작성하면 코드를보다 관리하기 쉬울 수 있습니다. –