У меня есть ряд тестов, основанных на рефлексии. Рефлексивный тест работает на заданной сборке для данного типа, то есть, например, посмотрите в service.dll все, что основано на IService. Я сделал это по этой причине, потому что мне нужно передать ссылочные типы в тесты, которые я не могу сделать с атрибуцией TestCase. Код в основном выглядит следующим образом:
public static void TestRunnerforTypeList(Type baseType, Func<Type, string, bool> excluder, Action<Type, string> mockResolver, Dictionary<Type, Dictionary<Type, Mock>> mocks, Action<dynamic, Type> assertor, string methodName)
{
foreach (var type in GetTypesToTest(baseType))
{
if (excluder(type, methodName)) continue;
dynamic objectToTest = CreateInstance(type, mocks);
mockResolver(type, methodName);
assertor(objectToTest, type);
}
}
Вызов этого будет выглядеть следующим образом:
[Test]
public void Positive_outcome_for_Get()
{
GeneralTestRunner.TestRunnerforTypeList(typeof(IService<,,>),
_serviceFactoryContext.ExcludeTypeForMethod,
_serviceFactoryContext.ResolvePositiveMockSetup,
_mocks,
(service, type) => Assert.IsNotNull(service.Get(1)),
"Get");
}
Это простое утверждение, но вы поняли идею. Таким образом, я получаю преимущество атрибуции TestCase, но со ссылочными типами, такими как mocks, по конвейеру.
Однако у меня есть другие места, где я использую атрибут TestCase, и Resharper подбирает их и увеличивает количество тестов в тестовой сессии, а референтные - нет.
У меня вопрос, есть ли способ сообщить Resharper (или nUnit), что число увеличивается каждый раз, когда вызывается вышеуказанное действие assertor?
Заранее спасибо;)