Что вы тестируете? Я считаю, что вы проверяете, что путь обработки ошибок для вызова нового Cplex () является правильным.
public CplexServices()
{
try
{
_cplex = new Cplex();
}
catch
{
throw new Exception("Path or license file is wrong");
}
}
Вы не тестируете новый Cplex (), он выдает исключения, когда файл лицензии скорее отсутствует, вы тестируете, что , если выдает исключения, вы поступаете правильно. В этом случае это так тривиально правильно, что мне, вероятно, было бы все равно. Однако, если бы это было более сложным, например, серьезной обработкой восстановления, мы бы предпочли иметь возможность проверить это.
Подход, проход на фабрику.
public CplexServices(CplexFactory myFactory)
{
try
{
_cplex = myFactory.makeCplex();
}
catch
{
throw new Exception("Path or license file is wrong");
}
}
Теперь в ваших тестах вы можете пройти фабрику, которая может искусственно выдать исключение, инициирующее путь, который вы хотите проверить.
Это все еще оставляет вопрос о том, как вы можете протестировать сам конструктор Cplex (). Возможно, это не ваша проблема, авторы должны иметь свои собственные модульные тесты.