ios - 从 UnitTest 启动 ViewDidAppear

标签 ios swift unit-testing tdd swift3

在 UnitTest 中激活 ViewDidAppear:

在回答我的问题之前,我知道有一个问题与这个问题非常相似 (Unit tests don't call viewDidAppear method),但它似乎并不能完全回答这个问题。

我想知道如何最好地在 viewController 上激活 viewDidAppear() 以测试应该在该方法中发生的各种事情。我很确定直接调用 viewDidAppear() 是不好的做法;所以我想知道如何在测试中间接调用它。

我已经遵循了 Natasha 的教程 https://www.natashatherobot.com/ios-testing-view-controllers-swift/因此发现了如何激活 viewDidLoad() 而无需直接调用它。在底部附近有关于使用 beginAppearanceTransition(true, animated: true) 间接调用它的讨论,但这似乎没有达到我的预期结果。

有什么建议吗? 谢谢!

最佳答案

您应该首先为 viewWillAppear 调用 beginAppearanceTransition,然后为 viewDidAppear 调用 endAppearanceTransition。 endAppearanceTransition 单独不会执行 viewDidAppear:

swift

 sut.beginAppearanceTransition(true, animated: true)
 sut.endAppearanceTransition()

目标 - C

[self.sut beginAppearanceTransition:YES animated:NO];
[self.sut endAppearanceTransition];

关于ios - 从 UnitTest 启动 ViewDidAppear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40157685/

相关文章:

ios - 以编程方式加载自定义 uiView,就像它们是单元格一样?

ios - 在 Xcode 7 中禁用 Bitcode 时无法将文件上传到应用程序商店

iphone - 在 iOS 7 下运行 iOS 6 应用程序时,为什么阴影无法正确显示在我的 View 上?

iphone - 我可以将应用程序名称设置为英语+其他语言吗?

ios - 今天 Widget 在 .compact 模式下,UITableview 行在页脚后面仍然可见

ios - 如何将标题/自定义 View 添加到 JSQMessagesViewController?

c++ - 在 C++ TDD 中调用重载 const 与非 const 方法的好方法?

unit-testing - 自 ag-grid 集成以来 Jest vuejs 崩溃

unit-testing - 如何与源文件并排运行Kotlin测试文件?

ios - Google Analytics 如何理解移动项目的类别、操作和标签?