假设我有3个类,每个类都有一个责任和方法。同时假设这些类有接口来促进依赖注入。A类调用B类的接口,而B类调用C类的接口。如果C类抛出NotAPrimeNumberException(例如,int参数不是质数),那么我希望有一个单元测试来确保如果传入参数不是质数,则C会抛出NotAPrimeNumberException。目前为止还好。
我认为单元测试提供了我需要了解被测试方法行为的所有文档。因此,上述单元测试将是像MakeSureNotAPrimeNumberExceptionIsThrownIfNumberisNotPrimeTest()这样的东西。
B类知道C类可能会抛出NotAPrimeNumberException。如果我想让NotAPrimeNumberException从B类中冒泡出来,我是否应该编写一个单元测试来检查在某些情况下是否会抛出NotAPrimeNumberException?那A类呢?如果A也让NotAPrimeNumberException冒泡出来,它是否也应该有一个单元测试?
我的担忧是,如果我在B类中不编写单元测试,那么B类的消费者将不知道B类可能会抛出这种类型的异常。但是,如果我编写了单元测试,那么强制调用B类以抛出NotAPrimeNumberException,却不处理B类中的异常,这有点儿愚蠢。如果我不编写单元测试,是否有适当的方式在API中记录此异常可能发生的情况?
额外的问题是如何在NUnit和Rhino-mocks中实现这一点?这当然取决于前两个问题。
我认为单元测试提供了我需要了解被测试方法行为的所有文档。因此,上述单元测试将是像MakeSureNotAPrimeNumberExceptionIsThrownIfNumberisNotPrimeTest()这样的东西。
B类知道C类可能会抛出NotAPrimeNumberException。如果我想让NotAPrimeNumberException从B类中冒泡出来,我是否应该编写一个单元测试来检查在某些情况下是否会抛出NotAPrimeNumberException?那A类呢?如果A也让NotAPrimeNumberException冒泡出来,它是否也应该有一个单元测试?
我的担忧是,如果我在B类中不编写单元测试,那么B类的消费者将不知道B类可能会抛出这种类型的异常。但是,如果我编写了单元测试,那么强制调用B类以抛出NotAPrimeNumberException,却不处理B类中的异常,这有点儿愚蠢。如果我不编写单元测试,是否有适当的方式在API中记录此异常可能发生的情况?
额外的问题是如何在NUnit和Rhino-mocks中实现这一点?这当然取决于前两个问题。