宝石-测试用例iOS

编写测试用例的步骤?

1.失败-> 2.通过-> 3.重构

这些步骤是什么意思🤔

  1. 失败:首先编写测试用例以进行失败。
  2. 通过:然后仅通过测试用例。
  3. REFACTOR:最后但最不重要的一点是,尝试重构意味着重组测试用例。

1.给定-> 2.当-> 3.然后

  1. 给予:您已经拥有的内容,例如API网址。
  2. 时间:您将如何处理此问题,例如获得成功/失败的响应
  3. 然后:在获得预期的输出之后,例如响应成功/失败,该怎么办

查看以下代码段以进行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测试的代码,请执行以下步骤。

  1. 检查UI是否可以进行UI测试
  2. 为UI生成UITestCase
  3. 然后,点击“ 记录UI测试
  4. 它将启动您的应用程序,在所需的屏幕上跳转
  5. 单击UIControls,每次单击将在xCode测试用例中生成代码
  6. Easy Peasy🙃

这是演示输出视频之一:登录的自动化UITestCase

  • 在此处下载源代码 →https://github.com/RuchiraMore/iOS-Test-Case

快乐编码.. !!! 🙂