0

我是单元测试的新手,对此我有疑问。

在我的源代码中,我将NSMutableArray. NSMutableArray必须已经实现了原语NSMutableArrayNSArray方法。这些方法在某些情况下会NSExceptions抛出NSRangeExceptions.

问题是:“当我对这个原始方法进行单元测试时,我应该为 编写 caseNSExceptions吗?

例子:

//array with 3 objects
STAssertThrows([array insertObject:object atIndex:8], @"");
  1. 这个对吗?
  2. 这是必要的吗?
4

1 回答 1

1

有两种情况需要考虑:断言将引发异常,以及断言不会引发异常。

后者不是必需的,但仍然是一个好主意。这是一个在断言消息中提供更明确的描述您期望发生或不发生的事情的机会。但是,您可以跳过STAssertNoThrow,异常仍然无法通过测试。

如果您希望发生异常,那么您将需要断言,就像您在问题中的代码中所做的那样。但是,您应该提供有意义的断言消息,而不是空字符串。

于 2013-02-21T19:44:09.733 回答