【发布时间】:2020-02-26 06:00:44
【问题描述】:
我们可以使用XCTAssertThrowsError 测试抛出的错误。可以使用expectation 测试异步事物。我有一些方法可以将工作分派到后台线程,并且在某些时候会抛出错误。
是否有可能在将来某个地方抛出错误?我想我需要结合expectation和XCTAssertThrowsError,但我不知道如何。
复制项目:https://github.com/Jasperav/ThrowingAsyncError。只需克隆项目并运行测试,其中一个会失败。我做了一个类,它会在分配后几秒钟后崩溃。我想确保它在几秒钟后继续崩溃,所以我想要一个测试用例。
【问题讨论】:
-
如果您的测试抛出的函数。你不应该只是做一个做/抓住。
-
@Amerino 在方法异步时不起作用。
-
@J.Doe 可以提供一些示例代码吗?这可能会更容易理解这个背景工作是如何使用的。例如,这个后台工作是否使用完成处理程序等调用?
-
你能不能让你的单元测试也抛出?然后,如果异步调用在单元测试中抛出,假设您没有捕获错误,它将导致测试失败。
-
@AnthonyDito 好的,我做了一个,看看我的编辑
标签: swift unit-testing xctest