序文
こんにちは、Habr!このチュートリアルでは、Cucumberのようなフレームワークの基本機能と、モバイルiOSデバイスでUI自動テストを作成するためのその使用法について説明します。
私の目標は、プログラミングや自動化のスキルに関係なく、ほとんどの読者が説明をできるだけシンプルで理解しやすいものにすることです。一般に、ネットワーク上にはBDDとCucumberに関する情報がたくさんあるので、繰り返しを避けるために、一般的な理論については深く掘り下げたくはありませんが、フレームワークとiOSの組み合わせに焦点を当てます。
この記事は、まず第一に、自動テストの世界を学び始めたばかりのテスターにとって興味深いものです。彼らは、キュウリを展開する方法についての詳細な説明と、最初のテストを書くための詳細な例を持っています。このツールに精通していない経験豊富なユーザーのために、この記事はキュウリの一般的なアイデアを提供し、おそらく、この(まあ、またはその逆-別の)テストフレームワークを支持する選択を支援します。

ガーキン、キュウリ、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 podspod init. , :
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!
inhibit_all_warnings!
def test_pods
pod 'Cucumberish'
end
target ‘__CucumberTests’ do
test_pods
end
- , . ,
XCFit
sudo gem install xcfitXcode, , 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 :
@objcclass func CucumberishSwiftInit()var elementQureyvar elementQueryexpectedMenuCount: 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-…

swift , . , :

«The app is running» , .
Given When Then , . .swift Step Definitions
. -, , -
, , , :
feature Features. :
Feature:…
In order to …
As 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. , , .