Я пытаюсь написать модульные тесты, используя структуру модульного тестирования Visual Studio для статического основного метода, который также является моей точкой входа в мое приложение. У меня есть следующий метод.
public static void Main()
{
StructureMapBootstrapper.Register();
SetupFilter<Applicant>();
}
и это вызывает общий метод SetupFilter
private static void SetupFilter<T>() where T : IDataFilterBase, new()
{
var filterName = typeof(T).Name;
if ("StartReceiver".TryGetTrueOrFalseConfigValue(filterName))
{
ObjectFactory.Configure(x => x.For<IDataFilterBase>().Use<T>());
var filter = new T();
filter.StartReceiver();
LogHelper.LogInfo(string.Format("Started {0} Filter Service", filterName));
}
else
{
LogHelper.LogInfo(string.Format("{0} Filter Service NOT started. StartReceiver flag is set to false", filterName));
}
}
Первое, что пришло мне в голову, это использовать MOQ и убедиться, что метод SetupFilter вызывался хотя бы один раз, но компилятор жаловался на то, что метод статичен. Любая идея о том, как написать тест для этого метода? Как настроить его с помощью среды модульного тестирования VS и что мне нужно для подтверждения?
Main
делает, но для истинного модульного теста потребуется, чтобы вы издевались над методамиRegister
иSetupFilter
, и просто убедитесь, чтоMain
вызывает эти два метода, что, вероятно, не то, что вы хотите сделать. - person D Stanley   schedule 13.05.2015SetupFilter
напрямую, но я не вижу смысла в модульном тестировании вашего метода запуска — это должно быть сделано как часть интеграционного тестирования. - person D Stanley   schedule 14.05.2015