Mentimun dan BDD. Menulis UI Autotests di iOS

Kata pengantar

Halo, Habr! Dalam tutorial ini, saya ingin berbicara tentang fungsi dasar kerangka kerja seperti Ketimun dan penggunaannya untuk membuat tes otomatis UI di perangkat iOS seluler.

Tujuan saya adalah membuat deskripsi sesederhana dan semudah mungkin bagi sebagian besar pembaca, terlepas dari keterampilan pemrograman atau otomatisasi. Secara umum, ada banyak informasi tentang BDD dan Ketimun di jaringan, oleh karena itu, untuk menghindari pengulangan, saya tidak ingin membahas lebih dalam teori umum, tetapi akan fokus pada kombinasi kerangka kerja dan iOS.

Artikel ini akan menarik, pertama-tama, bagi para penguji yang baru mulai mempelajari dunia tes otomatis. Mereka akan memiliki instruksi terperinci tentang cara menyebarkan Ketimun, serta contoh terperinci tentang penulisan tes pertama. Untuk pengguna berpengalaman yang tidak terbiasa dengan alat ini, artikel ini akan memberikan gambaran umum tentang Ketimun dan, mungkin, membantu memilih kerangka kerja pengujian ini (baik, atau sebaliknya - lain).

Beberapa kata tentang Gherkin, Ketimun, dan BDD

Gherkin PO, - . «» Gherkin , - , (Given-When-Then-And) //.

Cucumber - , behavior driven (BDD) , Gherkin.

BDD (behavior driven development) - , - . BDD :

Scenario: Login with PIN
Given the app is running
And I'am registered user
And I see Login screen
When I enter 4-digits PIN
Then I am logged in

, , , , . .

Cucumber

Cucumber iOS semi-official (-?) .

  • Cucumber - ocoaPod , . CocoaPod

    sudo gem install cocoa pods

  • pod init

  • . , :

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'

use_frameworks!
inhibit_all_warnings!

def test_pods
  pod 'Cucumberish'
end

target ‘__CucumberTestsdo
  test_pods
end

- , . ,

  • XCFit

    sudo gem install xcfit

  • Xcode, , cucumberish  bundle. CucumberTests . Features

  • build phases CucumberTests, Copy Bundle Resources, Compile Sources Link Binary With Libraries

  • Xcode,

    pod install

  • .xcworkspace , . Screens, Step Definitions Supporting Files. - Add Files to.

    , Cucumber!

  • ( 2020) « » - . , . Xcode :

    • @objc class func CucumberishSwiftInit()

    • var elementQurey var elementQuery

    • expectedMenuCount: uInt = uInt(menuCount)! expectedMenuCount: Int = Int(menuCount)!

    • expectedCellCount: uInt = uInt(cellCount)! expectedCellCount: Int = Int(cellCount)!

. ⌘+U . , , «Tests successfully executed 0 from 0». , , , , .

" "

Cucumber :

  • Features - .feature, BDD . , Gherkin, ,

  • < >CucumberTests.swift . , Given , . . , , ,

  • Screens - .swift , ,

  • Step Definitions - .swift ,

  • Common - commonStepDefinitions.swift , , ( , ..)

. .feature , Features, ,   beforeStart CucumberishSwiftInit()

?

, . , , , c Xcode , ⌘+U.

:

  • /

  • -

  • Given And . Given , Given-And-And-…

Langkah prasyarat sederhana
-
  • swift , . , :

«The app is running» , .

  • Given When Then , . .swift Step Definitions

  • . -, , -

, , , :

  • feature Features. :

Feature:…
In order toAs a …
I want to … 
  • feature , Gerkin

  • swift Given

  • step definition

Given

«the app is running» . , - «», Given-And-And-… . , .

- . , , , .

, , , «My credentials», .

. , , .

  • , , «Get started». , , «0000»,

, , , , , . «0000».

UIInterruptionMonitor, , (faceid ) .

  • , / , «My credentials». ,

  • , credentialList , , . , , "Delete" "Delete credential".

. , «My credentials».

CommonStepDefinitions

Given-, .

CommonStepDefinitions.swift. Common , , .

, Menu, Confirm Deny, «Please confirm». , , , step definitions . CommonStep :


And I see the "Menu" view
And I see "Confirm" button
And I see "Deny" button
And I see "Please confirm" text

common , , : 

common , . , - . step definitions accessibility identifier.

, BDD definition, ⌘+U. , , , ( ) executeFeatures .swift .

, - , , - , .

. , 50+ 5 . 5- 45 , . , 10 , , .

- ( «I have no credentials»). , .

Xcode . . .

. .

?

cucumber   , , BDD . .

- , . , , 3-4 . , -, , BDD-. , BDD . ? ? cucumber .

, BDD PO -- , , Jira - .

, - , PO , , , , . step definitions .

, , , , , .

, , UI- Cucumber. , , .




All Articles