Как передать строковый параметр в фабричный метод mbunit? - PullRequest
1 голос
/ 03 января 2011

У меня есть одна функция, которая генерирует вариации для серии модульных тестов с заданным строковым параметром.Как я могу использовать фабричный атрибут (или некоторый альтернативный метод), который принимает дополнительные, принимает строковый параметр для фабричного метода?

Я использую с Gallio / mbUnit для автоматизированной среды тестирования.

1 Ответ

2 голосов
/ 04 января 2011
[TestFixture]
public class SampleFixture
{
   [Column("123", "456")] 
   private string parameter; // Causes the fixture to be run once for each value.

   public IEnumerable<string> GetData()
   {
      yield return "abc" + parameter;
      yield return "def" + parameter;
      yield return "ghi" + parameter;
   }

   [Test, Factory("GetData")]
   public void MyDataDrivenTest(string text)
   {
      TestLog.WriteLine(text);
   }
}

Возможно, вы захотите прочитать статьи о тестах, управляемых данными , в Gallio wiki . Вы найдете много примеров, объясняющих, как использовать [Row], [Column] и другие удобные функции для создания управляемых данными тестов с помощью MbUnit.

ОБНОВЛЕНИЕ : В приведенном выше примере я только что соединил данные с завода с внешним параметром. Таким образом, тест будет выполнен 6 раз («abc123», «def123», «ghi123», «abc456», «def456» и «ghi456»). Но вы можете просто использовать параметр по-другому; например, изменение всего поведения GetData.

...