Я работаю с визуальной студией и записываю тесты Nunit. При написании тестовых случаев я столкнулся с классом, который имеет защищенный метод, и этот метод выбрасывает исключение типа NotImplementedException. Я пытался использовать Invoke key-word, но Ncover не покрывает эту часть. Я также попытался использовать try catch, но мой обозреватель кода говорит, что не использовать блок try catch в тестовых случаях. Итак, у друга есть другой способ написать тестовый пример для такого типа вопросов. Я упоминаю класс и тестовые примеры, пожалуйста, скажите мне, как его решить.Как написать тестовый пример для исключения исключений защищенного метода?
Класс File: -
public class UpdateMacActivityPriorityTranslator : EntityMapperTranslator<object, CSUpdateMACActivityPriorityResponseType>
{
protected override CSUpdateMACActivityPriorityResponseType BusinessToService(IEntityTranslatorService service, object value)
{
throw new NotImplementedException();
}
}
Тестовый случай: -
public void BusinessToServiceTest()
{
var updateMacActivityPriorityTranslator = new UpdateMacActivityPriorityTranslator();
var service = MockRepository.GenerateStub<IEntityTranslatorService>();
var value = new object();
var invokeProtectedBusinessToService = new PrivateObject(updateMacActivityPriorityTranslator,new PrivateType( typeof(UpdateMacActivityPriorityTranslator)));
NUnit.Framework.Assert.Throws<NotImplementedException>(
() =>
invokeProtectedBusinessToService.Invoke("BusinessToService",
new object[] { service, value }));
}
Вас _could_ рассмотреть вопрос о том 'class' (прибор), содержащий тест (' BusinessToServiceTest') вывести из класса, чтобы проверить, что из 'UpdateMacActivityPriorityTranslator'. Но могут быть и недостатки. Дополнение: если вы это сделали, это будет просто «NUnit.Framework.Assert.Throws (() => BusinessToService (service, value));' –
@JeppeStigNielsen, да, я делаю то же самое, но как обрабатывать исключение без использования блока try catch. –
@ChandanMishra Почему это исключение? – samy