2016-08-02 6 views
0

Итак, у меня есть несколько тестов, в которых я повторно использовал шаги изнутри.Перейдите к шагу Specflow из шага Определения

Но у меня теперь есть кошмар на фронте обслуживания, поскольку я не могу легко перемещаться между ступенями.

Вот пример:

[Given(@"I have an order")] 
    public void GivenIHaveAnOrder() 
    { 
     Given("an open store"); 
     Given("I am an existing customer"); 
     Given("I am on homepage"); 
     When("I search for a component"); 
     When("I add the component to my basket"); 
    } 

Как перейти к одной из этих внутренних шагов?

Если я хотел перейти к «Когда (« Я ищу компонент »); шаг я не могу.

Если бы я был в файле функций, я мог бы просто щелкнуть правой кнопкой мыши по шагу и «перейти к определению», но я не могу сделать это здесь. у кого-нибудь есть решение?

+0

Единственное решение, которое я нашел, - это поиск текста шага с помощью визуальной студийной находки. –

ответ

1

Я предполагаю, что вы вызываете шаги с помощью заданных/когда-функций, потому что они находятся в другом классе привязки. Я прав?

Существует лучший способ сделать это, чем использовать эти функции.

Вы ознакомились с концепцией водителя и инъекцией контекста? Посмотрите здесь: http://www.specflow.org/documentation/Context-Injection/

Просто извлечь вашу логику ваших шагов к классу драйвера и получить экземпляр от него в различных шаговых классов:

class Driver 
{ 
    public void AnOpenStore() 
    { 
     ... 
    } 
} 

[Binding] 
public class StepClass1 
{ 
    private Driver _driver; 

    public StepClass1(Driver driver) 
    { 
      _driver = driver; 
    } 

    [Given(@"I have an order")] 
    public void IHaveAnOrder() 
    { 
      _driver.AnOpenStore(); 
    } 
} 

[Binding] 
public class StepClass2 
{ 
    private Driver _driver; 

    public StepClass2(Driver driver) 
    { 
      _driver = driver; 
    } 

    [Given(@"an open store")] 
    public void AnOpenStore() 
    { 
      _driver.AnOpenStore(); 
    } 
} 

Когда вы упорядочивать шаг реализации, как это, повторное использование других шагов намного проще.

+0

Я полностью согласен с тем, что я переписывал тесты. Я надеялся, что у меня будет ярлык, чтобы перейти к шагу, но сейчас это не так. – Festivejelly

Смежные вопросы