宝石-测试用例iOS
编写测试用例的步骤?
1.失败-> 2.通过-> 3.重构
这些步骤是什么意思🤔
- 失败:首先编写测试用例以进行失败。
- 通过:然后仅通过测试用例。
- REFACTOR:最后但最不重要的一点是,尝试重构意味着重组测试用例。
1.给定-> 2.当-> 3.然后
- 给予:您已经拥有的内容,例如API网址。
- 时间:您将如何处理此问题,例如获得成功/失败的响应
- 然后:在获得预期的输出之后,例如响应成功/失败,该怎么办
查看以下代码段以进行API调用:
导入 XCTest
class UnitTestingTests:XCTestCase {
var sessionUnderTest:URLSession!
覆盖 func setUp(){
超级 .setUp()
sessionUnderTest = URLSession(配置:URLSessionConfiguration.default)
}
func test_APIComplition(){
//给定
让 url = URL(字符串:“ https://itunes.apple.com/search?media=music&entity=song&term=abba”)
让 promise =期望(描述:“已调用复合处理程序”)
var statusCode:整数?
var responseError:错误?
//什么时候
让 dataTask = sessionUnderTest.dataTask(with:url!){(data,response,error) in
statusCode =(响应为 ?HTTPURLResponse)?. statusCode
responseError =错误
promise.fulfill()
}
dataTask.resume()
waitForExpectations(超时:5,处理程序: nil )
//然后
XCTAssertNil(responseError)
XCTAssertEqual(statusCode,200)
}
}
基本流程的代码段:
导入 XCTest
class BasicFlow:XCTestCase {
func testHelloWorld(){
//给出
var strHelloWorld:字符串?
XCTAssertNil(strHelloWorld)
//什么时候
strHelloWorld =“世界你好”
//然后
//此测试将失败
// XCTAssertEqual(strHelloWorld,“ Hello word”)
//此测试将通过
XCTAssertEqual(strHelloWorld,“ Hello world”)
}
}
基本流程的代码段:
如果您需要测试项目中现有类的基本功能,那么,
您的ViewController类别:
导入 UIKit
类 MainViewController:UIViewController {
覆盖 func viewDidAppear( _动画:布尔){
超级 .viewDidAppear( true )
让 tempInt = square(值:2)
print(“ square-> \(tempInt)”)
}
func square(value:Int)-> Int {
返回值*值
}
}
您的单元测试用例类别:
导入 XCTest
//在这里导入您的项目
@testable 导入 UnitTesting
class BasicFlow:XCTestCase {
func testSquareInt(){
令值:整数= 2
让 squareVal = MainViewController()。square(value:value)
XCTAssertEqual(squareVal,4)
}
}
完成单元测试用例!
让我们去做UI测试用例.. 🏃♀️
您必须在UITestCase类中编写代码。
之前检查过,我们已经看到“ 如何添加测试用例 ”
导入 XCTest
class UnitTestingUITests:XCTestCase {
覆盖 func setUp(){
//在此处放置设置代码。 在调用类中的每个测试方法之前,将调用此方法。
//在UI测试中,通常最好是在发生故障时立即停止。
ContinueAfterFailure = 假
// UI测试必须启动他们测试的应用程序。 在安装程序中执行此操作将确保每种测试方法均会发生这种情况。
XCUIApplication()。launch()
}
func test_LoginSuccess(){
让 validUsername =“ abc”
让 validPassword =“ abc”
让 app = XCUIApplication()
让 txtUsername = app.textFields [“ username”]
//此检查文本字段是否存在
XCTAssertTrue(txtUsername.exists)
txtUsername.tap()
txtUsername.typeText(validUsername)
让 txtPassword = app.textFields [“ password”]
XCTAssertTrue(txtPassword.exists)
txtPassword.tap()
txtPassword.typeText(validPassword)
//选择Simultor->硬件->键盘->保持打开“ Toggle keyboard on”
app.buttons [“登录”] .tap()
//无效的登录情况
app.alerts [“无效的凭证”] .buttons [“确定”] .tap()
//有效的登录情况
//app.alerts [“已登录”] .buttons [“确定”] .tap()
}
}
在UITestCase中 ,您必须编写比单元测试用例少的代码。
因为,在这里您可以根据需要获得。
要获取用于UI测试的代码,请执行以下步骤。
- 检查UI是否可以进行UI测试
- 为UI生成UITestCase
- 然后,点击“ 记录UI测试 ”
- 它将启动您的应用程序,在所需的屏幕上跳转
- 单击UIControls,每次单击将在xCode测试用例中生成代码
- Easy Peasy🙃
这是演示输出视频之一:登录的自动化UITestCase
- 在此处下载源代码 →https://github.com/RuchiraMore/iOS-Test-Case
快乐编码.. !!! 🙂