Допустим, у меня есть метод теста:
[TestCaseSource("TestData")]
public void SomeTest(object[] args)
{
// Do some testing
}
И метод TestData:
public static IEnumerable TestData()
{
for (int i = 0; i < 64; i ++)
{
BitArray b = new BitArray(BitConverter.GetBytes(i));
b.Length = 6;
// Generate boolean args as (true, true, false, false, true, false).
object[] args = b.Cast<object>().ToArray();
yield return new TestCaseData((object)args).SetName("{m}{a}");
}
}
Я не могу получить имена тестовых случаев, чтобы показать полную длину строки аргументов , даже если я заменим {a}
на {a:40}
.
Все тестовые случаи усекаются, например: SomeTest([False, False, False, False, False, ...])
, что делает некоторые тестовые случаи, которые используют одну и ту же усеченную строку, объединенными в один тестовый набор с несколькими результаты, делая чтение менее ясным.
Теперь я могу попытаться удалить приведение (object)
, используя перегрузку TestCaseData(params object[] args)
в TestData
, и попытаться выполнить тестирование следующим образом:
[TestCaseSource("TestData")]
public void SomeTest(params object[] args)
{
// Do some testing
}
И метод TestData:
public static IEnumerable TestData()
{
for (int i = 0; i < 64; i ++)
{
BitArray b = new BitArray(BitConverter.GetBytes(i));
b.Length = 6;
// Generate boolean args as (true, true, false, false, true, false).
object[] args = b.Cast<object>().ToArray();
yield return new TestCaseData(args).SetName("{m}{a}");
}
}
За исключением того, что он выдает ошибку Too many arguments provided, provide at most 1 arguments.
, которую я не могу понять, почему.