У меня одинаковые шаги в двух разных файлах объектов SpecFlow, например:
Когда вы щелкаете правой кнопкой мыши и переходите к определению, они оба переходят к этому вфайл определения общего шага:
public void GivenUserNameOf(string userName)
{
SetUser(userName);
}
Однако, когда я проверяю сгенерированный код за файлами, я вижу две разные вещи:
testRunner.Given(string.Format("user name of {0}", userName), ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");
, который работает, и это:
testRunner.Given("user name of <userName>", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given ");
, который завершается ошибкой, потому что переданная строка имеет имя пользователя (с угловыми скобками вокруг него, редактор считает, что скобки - это синтаксис ссылки, поэтому я пропустил их), и в результате "Ссылка на объект не установлена наЭкземпляр объекта "в моем коде.
Я попытался удалить файл объектов и код позади файла и воссоздать их, а также попытался удалить эти файлы и файл кэша во временной папке. Каждый раз новый код файла объектов за файлом все еще содержит текст в квадратных скобках, а не "{0}", как следует.
Есть идеи, почему?