2017-05-02 16 views
0

다음 웹 사이트에서 JBehave의 웹 응용 프로그램을 자동화하고 있습니다.jBehave의 합성 단계가 먼저 사전 조건을 실행하지 않는 이유는 무엇입니까?

내가 단계를 실행하면 처음보다는 먼저 사전 조건을 실행하는 것보다 복합 단계 안에 무엇을 실행합니다 .. 모든 사전 조건을 포함 한 복합 단계 ..

을 만든 어떻게 내가 할 수있는 복합 단계를 사용하여 순차적으로 테스트를 실행하십시오. 제발 조언.

다음은 내 단계 파일 코드입니다. I는, 복합 기능 안에있는 SYSOUT "I 복합 단계 참조 주어"실행

@Given("I see given step") 
    public void given() 
    { 
     System.out.println("Inside GIVEN"); 
    } 

    @Then("I see then step") 
    public void when() 
    { 
     System.out.println("Inside WHEN"); 
    } 

    @Then("I see when step") 
    public void then() 
    { 
     System.out.println("Inside THEN"); 
    } 

    @Given("I see composite step") 
    @Composite(steps={"Given I see given step","Then I see then step","When I see when step"}) 
    public void composite() 
    { 
     System.out.println("Inside COMPOSITE"); 
    } 

I은 ​​먼저 사전 조건을 실행해야 .. 먼저 실행.

감사합니다.

답변

0

단계를 중첩시키려는 경우 JBehave가 해당 시나리오를 처리하도록 설계되지 않았 음을 확신합니다. 당신은 당신의 코드에 사소한 오자가있다. 당신은 "@then"스텝을 두번 가지고있다. 하나는 "when"에있다. 그러나 나는 당신이하려고했던 것을 얻습니다 (나는 생각합니다).

동일한 @Given/@ When/@ Then/@ And 단계에 여러 단계의 세부 단계를 함께 두어야합니다. 각 단계에는 코드 한 줄만 포함해야한다는 규칙은 없지만 명백히 하나의 복합 단계 만 포함해야합니다.

희망이 도움이됩니다. 그렇지 않은 경우 실제 상황을 통해 수행하려는 작업을보다 자세하게 설명하십시오.