UITests:没有叫deinit

时间:2015-08-30 12:44:47

标签: ios swift xcode xcode-ui-testing

为什么当我在 Xcode 中测试我的控制器时一切都很好,但是没有调用any方法。这是对的吗?

虽然应用程序正常运行,但它很好,但不适用于deinit目标。

对于复杂的结构,模拟器会反复分配更多的对象,并且......根本不会释放它。因此,在较慢的机器上,应用程序通常会在没有任何理由的情况下退出......并且无法完成测试。

使用Xcode 8,iOS 10,macOS Sierra。

2 个答案:

答案 0 :(得分:0)

如果没有看到测试代码的样本,我无法明确地回答您的问题,但是,您的情况让我怀疑几件事情。

基本上发生的事情是应用程序正在为您运行的每个测试创建新进程。代码内部某处的内存泄漏将是第一个需要调查的问题。如果你正在泄漏内存,那么启动一系列进程的测试框架可能会导致崩溃,并允许该问题在正常运行期间在雷达下飞行。

此外,除非您通过测试类中的拆卸功能显式地取消初始化控制器,否则该过程通常在测试结束时被终止。如果你想测试你的重新初始化,我会建议在测试中明确触发拆卸来测试你的内存分配行为。此外,Xcode Analyze功能可能对您有用。

如果您可以发布测试代码示例,这将是一个很好的帮助,我会相应地编辑我的答案。

答案 1 :(得分:0)

确保deinit不是空的。如果它是空的,那么它将永远不会工作。输出你需要解除分配并检查它是否正常工作。

我的建议

 better to use dealloc method rather than using deinit.
相关问题