上一篇文章:根据Martin Fowler的测试理论,该测试应遵循以下测试金字塔组合:测试金字塔的底部是单元测试,集成测试,应用程序服务层的中间层测试,而最高级别是以用户为中心的业务逻辑。测试。
iOS测试分为两部分:UI测试和单元测试。这是因为单元测试首先定义行为,然后定义测试用例,然后编写代码。在实践中,通常您没有太多时间首先定义行为,执行单元测试需要花费很多精力,并且不可能有效地构建合理的单元测试环境。
本机测试的缺点:
(1)单元测试
1.体验难题更难解决,而且教程也不多,因此初学者很难上手。
2.在iOS上,您通常需要测试异步方法的正确性。我们经常使用“执行异步等待”。这在很大程度上取决于当前的环境。
3.编写单元测试会增加程序员的工作量。单元测试与生产代码相同,并且不应有所不同,因为它们用于测试开发人员必须面对测试代码的编写和维护,并避免代码重复。是否可以编写良好的测试代码取决于您的设计和编码技能。
学习思想是巨大的挑战,也是不可能的。单个模拟代码实现类的完整测试应基于一个模块来定义用于测试代码流的行为。
(2)UI测试:
到目前为止,只能执行一些简单的测试,并且测试过程仍然需要人工干预。
测试程序:
1. KIF标准:
原理介绍:
KIF的全名是“保持功能正常”。这是一个基于XCTest构建的UI测试框架,该框架通过可访问性找到特定的控件,然后使用私有API来操作UI。由于它基于XCTest,因此您可以完全使用XCode的与测试相关的工具(包括命令行脚本)来模拟用于测试的用户输入。
KIF继承自XCTest测试框架,您可以直接使用私有API来操作UI界面并支持UIWebView测试。
KIF使用Accessibiility来执行接口测试的基本原理。由于KIF基于Accessibility,因此您需要为初始化代码或InterfaceBuilder控件时需要测试的控件设置AccessibilityLabel和AccessibilityTrait。
语言:Object C Swift,自iOS 10起,没有lib和App的正式版本。KIF的优势
1.在测试过程中直接导入UIView:通过在测试过程中直接将KIF导入应用程序中,可以直接导入UIView和其他控件,因此可以直接判断各种属性,但是XCTest非常不方便,但不能直接导入。对于该应用程序,您将从现有视图中获取XCUIElement,该类与UIView有很大不同,并且您基本上不能判断UIView的属性。
2.原则上,XCTest要求针对每个UI测试重新启动应用程序,这需要很多时间,而KIF则不需要。很多文档和教程:自从KIF在2011年推出以来,互联网上有如此多的教程和问题与答案,很容易找到解决方案,但是XCode UI测试却有所不同。它没有很快发布,并且没有很多相关材料。
自动化的实施步骤:
1.生成KIF并配置目标项目参数。
2.安装KIF第三方框架。
3.用例创建与配置:可访问性属性设置,用例的通用操作界面分为交互操作和测试用例操作,