單元測試 + UI測試
一. 單元測試
簡介:
單元測試, 又稱模塊測試, 是針對程序模塊的最小單位來進行測試. 對於過程化變成來說, 一個單元就是單個函數 \ 過程等; 對於面向對象變成來說, 一個單元就是一個方法.
有了單元測試, 我們不需要每次都com+R 啟動我們的程序,對於大的項目來說, 啟動一次項目都會花費很長時間, 這時使用單元測試, 就方便了很多;
使用:
1. 添加測試文件
a.在創建項目的時候, 可以直接勾選include Unit Test
b.項目已存在, 可添加: File -> New -> Target -> Unit Test
文件中默認包含的四個方法:
- (void)setUp
//初始化的代碼,在測試方法調用之前調用
- (void)tearDown
// 釋放測試用例的資源代碼,這個方法會每個測試用例執行後調用
- (void)testExample
// 測試用例的例子,註意自己寫的測試用例方法 一定要test開頭
- (void)testPerformanceExample {
// 測試性能例子
[self measureBlock:^{
// Put the code you want to measure the time of here.
// 需要測試性能的代碼
}];
}
2.測試 某個類中的方法
例如:
- (void)setUp {
[super setUp];
self.vc = [[ViewController alloc] init];
}
- (void)tearDown {
self.vc = nil;
[super tearDown];
}
- (void)testMyFuc {
// 調用需要測試的方法,
int result = [self.vc getNum];
// 如果不相等則會提示@“測試不通過”
XCTAssertEqual(result, 200,@"測試不通過");
}
二. UI 測試
需要寫一些代碼, 來模擬 人為的操作, 從而根據結果,來判斷正確與否
- (void)testLogin{
[XCUIDevice sharedDevice].orientation = UIDeviceOrientationFaceUp;
[XCUIDevice sharedDevice].orientation = UIDeviceOrientationFaceUp;
//XCUIApplication 這是應用的代理,他能夠把你的應用啟動起來,並且每次都在一個新進程中。
XCUIApplication *app = [[XCUIApplication alloc] init];
//XCUIElement 這是 UI 元素的代理。元素都有類型和唯一標識。可以結合使用來找到元素在哪裏,如當前界面上的一個輸入框
XCUIElement *usernameTextField = app.textFields[@"username:"];
[usernameTextField tap];
[usernameTextField typeText:@"xiaofei"];
XCUIElement *passwordTextField = app.textFields[@"password:"];
[passwordTextField tap];
[passwordTextField tap];
[passwordTextField typeText:@"12345"];
[[[[[[[app childrenMatchingType:XCUIElementTypeWindow] elementBoundByIndex:0] childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element childrenMatchingType:XCUIElementTypeOther].element tap];
[app.buttons[@"login"] tap];
//登錄成功後的控制器的title為loginSuccess,只需判斷控制器的title時候一樣便可判斷登錄是否成功
// XCTAssertEqualObjects(app.navigationBars.element.identifier, @"loginSuccess");
XCTAssertEqual(app.navigationBars.element.identifier, @"loginSuccess",@"測試不通過");
}
參考鏈接:
http://www.jianshu.com/p/07cfc17916e8
單元測試 + UI測試