2013-04-23 1 views
0

Я имею реальный трудно понять, что происходит не так с моей функцией потока спецификации в VS2012 и или VS2010Использование отдельных символов в качестве параметров с функцией specflow

Я просто не в состоянии использовать один символ в качестве параметра в шаге, если этот символ содержится где-либо еще в выражении шага

Он никогда не разбирается правильно, и я пробовал делать все виды, включая использование кавычек и т. д., но казалось бы, что использование одного символа просто невозможно.

Возможно, кто-то подтвердит, что это ожидается или проблема с информацией, или даже что я просто делаю что-то неправильно?

Я пробовал использовать SpecFlow 1.9.1 и 1.9.2 (последние), но не работает.

Простой пример, который показывает моя проблема будет следующая функция/шаги

особенность

Feature: Test1 
    In order to check the id of an object using a character 
    As a frustrated developer 
    I want to define a step with a single char as a parameter 

@mytag 
Scenario: Test single char param of character existing in phrase 
    Given I have an array of 8 characters 
    Then the array should contain the character a 

Scenario: Test single char param of character not existing in phrase 
    Given I have an array of 8 characters 
    Then the array should contain the character z 

Шаги

public class TestSpecFlow1Steps 
{ 
    char[] charArray = new char[] { 'a', 'b', 'c', 'd', 'e', 'x', 'y', 'z' }; 

    [Given(@"I have an array of (.*) characters")] 
    public void CheckArrayCount(int arrayCount) 
    { 
     Assert.AreEqual(charArray.Length, arrayCount); 
    } 


    [Then(@"the array should contain the character (.*)")] 
    public void CheckCharaExists(char val) 
    { 
     Assert.AreEqual(true, charArray.Contains(val)); 
    } 

} 

Любая помощь с этим будет с благодарностью принято.

благодаря

ответ

0

Я думаю, что это известная ошибка в VS надстройке SpecFlow в. Регулярное выражение, которое они используют для применения форматирования, находит неправильный символ, как показано в первом затем. Однако это не означает, что с вашим тестом что-то не так. Как вы можете видеть здесь, тесты проходят.

enter image description here

(К сожалению, только заметил, что вы сказали точно, что выше, когда вы обновляете ваш вопрос, я буду обновлять этот ответ)

+0

Или, может быть, его не известная ошибка ... – AlSki

+0

Добавлено https: //github.com/techtalk/SpecFlow/issues/288 – AlSki

+0

Спасибо за это, я думаю, что у меня возникла другая проблема, как на одном конкретном шаге, где последний параметр был символом, по какой-то причине он будет читать все остальные строки в сценарии и включить их в качестве значения параметра, а затем выбросить исключение, указав, что он ожидает тип char. Затем я сделал всевозможные вариации и начал считать, что, поскольку редактор не собирал его в качестве символа, тогда тест потерпит неудачу. В любом случае, спасибо за то, что направил меня на известную ошибку. Я попытаюсь воссоздать проблему, с которой я столкнулся, и, возможно, задать новый вопрос. – Kezza