У меня есть следующий вопрос относительно инкапсуляции с использованием инфраструктуры SpecFlow, цель состоит в том, чтобы инкапсулировать метод 1 в методе 2, ниже приведены следующие функции / сценарии, а также сгенерированный шаг, я считаю, что мне нужно использовать string.format,В любом случае, пожалуйста, посоветуйте, как инкапсулировать существующие данные в методе 1 в метод 2.
Во-первых, пожалуйста, смотрите сценарий.
Scenario Outline: Compare XYZ data against the given templates
Given I have located the XYZ file from <xyzfilelocation>
Examples:
| xyzfilelocation |
| Tests\Meebu\Doggg\Cat\xyz\Yhyh800\Yhyh800_TheId_1234567.FirstOne.xml |
| Tests\Meebu\Doggg\Cat\xyz\Yhyh800\Yhyh800_TheId_7654321.SecondTwo.xml|
Во-вторых, смотрите сгенерированные шаги.
//Method 1
[Given(@"I have located the XYZ file from (.*)")]
public void GivenIHaveLocatedTheXYZFileFromLocation(string xyzfilelocation)
{
string file = new System.IO.DirectoryInfo(Assembly.GetExecutingAssembly().Location).Parent.FullName + "\\" + xyzfilelocation;
_context.ActualXYZ = new XmlDocument();
_context.ActualXYZ.Load(file);
}
// Метод 2, я хочу инкапсулировать вышеуказанный метод здесь, я пытаюсь сделать ниже, это правильный путь, и я считаю, что мне нужно сделать string.format, пожалуйста, сообщите / будет ли это работать, и это инкапсуляция?
[When(@"I compare XYZ file (.*)")]
public void WhenICompareXYZFile(string xyzfilelocation)
{
//Calling the method Given I have located the XYZ file from <xyzfilelocation>
Given(string.Format("I have located the XYZ file from {0}", xyzfilelocation));
}