iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了单元测试iOS应用扩展大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我的iOS应用有多个扩展程序: >今天延期 > siri扩展 > imessage扩展 我还创建了共享公共代码的框架.我的问题是我想要一个单元测试目标,它将测试所有扩展.我的Podfile看起来像这样: target 'MyApp' do pod 'MyFramework', :path => './MyFramework' target 'MyAppTests' do
@H_403_0@
@H_403_0@
我的iOS应用有多个扩展程序:

>今天延期
> siri扩展
> imessage扩展

我还创建了共享公共@L_696_2@的框架.我的问题是我想要一个单元测试目标,它将测试所有扩展.我的Podfile看起来像这样

target 'MyApp' do
   pod 'MyFramework',:path => './MyFramework'
     target 'MyAppTests' do
       inherit! :search_paths
     end
 end

abstract_target 'Extensions' do
  pod 'MyFramework',:path => './MyFramework'
  target 'TodayExtension'
  target 'SiriExtension'
  target 'imessageExtension'
  target 'ExtensionsTests'
end

如您所见,我创建了ExtensionsTests目标,但我不知道如何继承所有扩展的搜索路径.我也试过用
@testable导入TodayExtension但我得到了架构x86_64的未定义符号的链接错误.

我有什么想法可以解决这个问题?

完整的错误@L_696_2@:

Undefined symbols for architecture x86_64:
  "type Metadata accessor for TodayExtension.LoadingView",referenced from:
      ExtensionTests.LoadingViewTests.setUp () -> () in LoadingViewTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command Failed with exit code 1 (use -v to see invocation)

编辑:

我认为这个问题很普遍:我如何测试任何扩展@L_696_2@?我创建了单个视图项目,今天添加了扩展,我无法扩展@L_696_2@.

在apple docs中只有这些信息:

这不是很有帮助

解决方法

Apple文档的引用是完全正确的.

你可能陷入陷阱,我发现自己陷入了很多陷阱:单元测试应该测试功能的“单位”.不要测试“单位”中的每个小辅助函数,而是测试公共函数.框架也是如此.仅针对公共功能编写测试.如果您测试的是更多,那么您在编写测试时会花费太多时间.

可以创建一个单元测试目标,并选择您的主应用程序作为“待测试的目标”然后在测试文件中加载扩展名就像主机应用程序一样,并测试主机应用程序将使用的交互正确返回.

大佬总结

以上是大佬教程为你收集整理的单元测试iOS应用扩展全部内容,希望文章能够帮你解决单元测试iOS应用扩展所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。