2014-02-25 227 views
3

我正在编写一个测试方法,我希望SUT在某些情况下抛出异常。代码如下所示:XCTAssertThrows在断点处停止

- (void) testCantStartTwice 
{ 
    XCTAssertThrows([self.sut start], @""); 
} 

现在,一切都很好,测试通过。但是,我让Xcode为所有ObjC异常设置了一个Exception Breakpoint,这在调试器中测试应用程序时非常有用。就像你现在,现在当我用⌘U执行我的测试套件时,现在它停止在那个测试中,看起来好像它失败了,尽管它说“测试成功”。

任何方式使断点不停止在那个测试?

感谢所有最好的

回答

1

也许你可以在测试时使用测试失败断点而不是异常断点。关于单元测试的wwdc 2013视频概述了检查测试失败的相当不错的工作流程。它基本上说:

  1. 设置一个测试失败断点,这将允许您检查导致失败的条件。
  2. 如果需要,请在测试的早期设置手动断点,然后重新运行,以便像往常一样逐步导致导致失败的语句。

这不是一个真正的直接答案,但据我所知,我认为没有办法为异常断点创建异常。希望它有帮助

+0

瑞安,谢谢你的答案!这是一个很好的解决方案,但是,在Sim或Device上执行应用程序时,异常断点非常有用。理想情况下,运行时应该有一组断点,并在测试时设置一个断点,有没有办法像这样设置断点? –

0

我有同样的问题,我一直在寻找2小时解决方案。可能我们对此无能为力。