UI Testing in Xcode 7
2015-10-08 10:14
561 查看
参考文章:
UI Testing in Xcode - WWDC 2015 https://developer.apple.com/videos/play/wwdc2015-406/
Document
https://developer.apple.com/library/prerelease/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/UnitTesting.html
UI Testing in Xcode 7 revised https://testerhome.com/topics/3372
UI Testing in Xcode 7 http://masilotti.com/ui-testing-xcode-7/
UI Testing Cheat Sheet and Examples http://masilotti.com/ui-testing-cheat-sheet/
XCTest Reference http://masilotti.com/xctest-documentation/index.html
1. 点击Test navigator icon,切换到Test模块
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151008133739831-900180467.png)
2. 点击左下角的“+”号,可以选择添加 Unit test target、Unit test class、UI test target、UI test class
这里我们选择 UI test target
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151008135421393-363449903.png)
如上图:
HouseLoanCalTests 是 Unit Test
HouseLoanCalUITests 是 UI Test
3.
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151025173348802-1427856329.png)
问题1:
XCTAssertEqual(periodTextField.value, @"1");
XCTAssertTrue([periodTextField.value isEqualToString:@"1"], @"Strings are not equal %@ %@", @"1", periodTextField.value);
用 XCTAssertEqual,这个判断需要两个对比元素都是C类型(scalars、struct、union等),如xx.count,可以用XCTAssertEqual;
解决方法:
换成 XCTAssertTrue
http://stackoverflow.com/questions/19464261/xctassertequal-fails-to-compare-two-string-values
问题2:
之前给四个页面分别写了一个test,原本是向顺序执行的,但是发现运行时每个test都会调起一次app
解决方法:
之前在 setUp 方法里写了 [self.app launch],将之移到第一个test里面即可;
问题3:
在公司app里添加了一个xxxUITests,运行失败
解决方法:
1. Edit Scheme,Test项选择为OL
2. 错误:Tests couldn’t be loaded because it doesn’t contain a version for the current architecture
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
选择 Build Settings 里面 Valid Architectures 里,原来只有arm7、arm7s,这里需要加上arm64
问题4:
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151027152233544-201096645.png)
新建UITest的方法有好几种
1. 切换到test模块,点击左下角的+,New UI Test Target
2. File - New - Target - Test - iOS UI Testing Bundle
新建完的target,从代码目录看,是有个xxxUITests.m文件的,但是从test模块看,下面的test数目是0,且那个xxxUITests.m文件里的系统函数没有高亮
目前没有找到根本原因,零时的解决方法是:运行一下这个UI testing,试了几遍之后,就有了
UI Testing in Xcode - WWDC 2015 https://developer.apple.com/videos/play/wwdc2015-406/
Document
https://developer.apple.com/library/prerelease/ios/documentation/ToolsLanguages/Conceptual/Xcode_Overview/UnitTesting.html
UI Testing in Xcode 7 revised https://testerhome.com/topics/3372
UI Testing in Xcode 7 http://masilotti.com/ui-testing-xcode-7/
UI Testing Cheat Sheet and Examples http://masilotti.com/ui-testing-cheat-sheet/
XCTest Reference http://masilotti.com/xctest-documentation/index.html
1. 点击Test navigator icon,切换到Test模块
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151008133739831-900180467.png)
2. 点击左下角的“+”号,可以选择添加 Unit test target、Unit test class、UI test target、UI test class
这里我们选择 UI test target
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151008135421393-363449903.png)
如上图:
HouseLoanCalTests 是 Unit Test
HouseLoanCalUITests 是 UI Test
3.
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151025173348802-1427856329.png)
问题1:
XCTAssertEqual(periodTextField.value, @"1");
XCTAssertTrue([periodTextField.value isEqualToString:@"1"], @"Strings are not equal %@ %@", @"1", periodTextField.value);
用 XCTAssertEqual,这个判断需要两个对比元素都是C类型(scalars、struct、union等),如xx.count,可以用XCTAssertEqual;
解决方法:
换成 XCTAssertTrue
http://stackoverflow.com/questions/19464261/xctassertequal-fails-to-compare-two-string-values
问题2:
之前给四个页面分别写了一个test,原本是向顺序执行的,但是发现运行时每个test都会调起一次app
解决方法:
之前在 setUp 方法里写了 [self.app launch],将之移到第一个test里面即可;
问题3:
在公司app里添加了一个xxxUITests,运行失败
解决方法:
1. Edit Scheme,Test项选择为OL
2. 错误:Tests couldn’t be loaded because it doesn’t contain a version for the current architecture
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
选择 Build Settings 里面 Valid Architectures 里,原来只有arm7、arm7s,这里需要加上arm64
问题4:
![](http://images2015.cnblogs.com/blog/724646/201510/724646-20151027152233544-201096645.png)
新建UITest的方法有好几种
1. 切换到test模块,点击左下角的+,New UI Test Target
2. File - New - Target - Test - iOS UI Testing Bundle
新建完的target,从代码目录看,是有个xxxUITests.m文件的,但是从test模块看,下面的test数目是0,且那个xxxUITests.m文件里的系统函数没有高亮
目前没有找到根本原因,零时的解决方法是:运行一下这个UI testing,试了几遍之后,就有了
相关文章推荐
- marguee实现最新公告动态轮播效果
- LeetCode 51 N-Queens
- UItableViewCell 编辑移动
- iOS开发之窥探UICollectionViewController(四) --一款功能强大的自定义瀑布流
- jsp ueditor 图片在线管理图片路径
- Exported service does not require permission警告
- iOS的UIColor类与其相关类之间的区别及判断相等的方法
- Block高级用法:Block传值UI_12(3)
- UITabBarController及三种控制器的…
- 导航控制器 UI_08(上)
- UIPassValue页面传值 UI_08(下)
- 实战项目:通讯录 UI—第十一天
- UITableViewBase UI_09
- TableEdit UI_10
- UITableView大总结(上)
- 导航控制器 UI_08(上)
- UIPassValue页面传值 UI_08(下)
- UITableViewBase UI_09
- UITableView大总结(上)
- TableEdit UI_10