XCTest是什么?
XCTest是iOS的单元测试框架,有objective-c和swift两种语言可以选择。Xcuitest是iOS的UI测试框架。
XCTest框架类似于python中的unittest框架,声明一个测试case继承XCTestCase和测试方法,测试方法以test开头。
XCTest官方文档地址:https://developer.apple.com/documentation/xctest
写一个iOSDemo
为了能演示XCTest如何使用,需要一个iOS应用编写XCTest用例。所以,我们需要学习下如何写一个iOS简单应用。
写一个简单的登录页面,需要帐号 & 密码两个输入框、登录按钮,效果如下图:
1、在ViewController层可以编写业务逻辑,给控件增加触发事件。
2、在Main.storyboar添加控件 Main.storyboar有点像Android中的activity中的布局文件,添加用户名和密码两个便签和输入框增加一个登录按钮。
输入用户名和密码,点击登录按钮弹出alert弹框,判断用户名和密码的正确性。
3、给控件绑定事件
登录按钮绑定事件在ViewController.h里面,定义userLogin方法:
代码语言:javascript复制@interface ViewController : UIViewController
- (IBAction) userLogin:(id)obj;
@end
userLogin方法方法进行绑定
4、输入框绑定事件
在再ViewController.h里面添加字段,并相应设置字段的属性。
代码语言:javascript复制#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
UITextField *tfUserName;
UITextField *tfPWD;
}
@property (nonatomic, retain) IBOutlet UITextField *tfUserName;
@property (nonatomic, retain) IBOutlet UITextField *tfPWD;
- (IBAction) userLogin:(id)obj;
@end
再回到【Main.storyboard】,选择用户名的文本框,点击【右键】
鼠标移到【New Referencing Outlet】后面的小圆圈上,此时会出现一个加号,然后点击加号,拖动到【View Controller】然后放开鼠标,就会看到我们刚才定义的两个属性了。
5、LaunchScreen.storyboard
app启动页布局文件,可以随便加点文案或者启动图啥的,苹果规定上架APP的启动页必须使用LaunchScreen.storyboard。
测试用例录制
Xcode可以使用XCTest框架自带case录制功能,点击小红点按钮进行录制。
创建项目后或生成一个iOSDemoUItest的项目里边有个.m文件。
测试用例运行
点击test方法名有个播放按钮,点击播放按钮,先build一个被测app,然后build一个测试用的app,这个app没有任何页面,启动后执行测试case。