我正在与视觉工作室合作编写Nunit测试用例。 在编写测试用例时,我遇到了一个具有受保护方法的类,该方法抛出了“NotImplementedException”类型的异常。 我试图使用调用关键字,但Ncover不包括该部分。 我也尝试使用try catch,但是我的代码审查人员说在测试用例中不要使用try catch块。 所以,朋友有没有其他方式来编写这类问题的测试用例。 我提到类和测试用例,请告诉我如何解决它。如何编写被保护方法抛出异常的测试用例?
类文件: -
public class UpdateMacActivityPriorityTranslator : EntityMapperTranslator<object, CSUpdateMACActivityPriorityResponseType>
{
protected override CSUpdateMACActivityPriorityResponseType BusinessToService(IEntityTranslatorService service, object value)
{
throw new NotImplementedException();
}
}
测试案例: - 包含测试方法BusinessToServiceTest
已经从派生
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(服务,价值));' –
2014-09-04 11:28:40
@JeppeStigNielsen,是的,我也这样做,但如何处理异常而不使用try catch块。 – 2014-09-04 11:30:20
@ChandanMishra为什么这里的例外? – samy 2014-09-04 11:47:50