NativeScript - การทดสอบ

การทดสอบเป็นขั้นตอนที่สำคัญมากในวงจรชีวิตการพัฒนาของแอปพลิเคชัน ช่วยให้มั่นใจได้ถึงคุณภาพการใช้งาน ต้องมีการวางแผนและดำเนินการอย่างรอบคอบ นอกจากนี้ยังเป็นขั้นตอนที่ใช้เวลานานที่สุดในการพัฒนา กรอบงาน NativeScript ให้การสนับสนุนอย่างกว้างขวางสำหรับการทดสอบแอปพลิเคชันอัตโนมัติ

ประเภทของการทดสอบ

โดยทั่วไปกระบวนการทดสอบมีสามประเภทเพื่อทดสอบแอปพลิเคชัน มีดังนี้ -

การทดสอบหน่วย

การทดสอบหน่วยเป็นวิธีที่ง่ายที่สุดในการทดสอบแอปพลิเคชัน มันขึ้นอยู่กับการตรวจสอบความถูกต้องของโค้ด (ฟังก์ชันโดยทั่วไป) หรือวิธีการของคลาส แต่ไม่ได้สะท้อนถึงสภาพแวดล้อมจริงและต่อมา เป็นตัวเลือกที่น้อยที่สุดในการค้นหาจุดบกพร่อง

โดยทั่วไป NativeScript ใช้กรอบการทดสอบหน่วย Jasmine, Mocha with Chai และ QUnit

ในการดำเนินการนี้ก่อนอื่นคุณต้องกำหนดค่าในโครงการของคุณโดยใช้คำสั่งด้านล่าง -

tns test init

ตอนนี้คุณจะได้รับคำตอบดังต่อไปนี้ -

? Select testing framework: (Use arrow keys) 
> jasmine 
   mocha 
   qunit

ตอนนี้เลือก jasmine กรอบและหน้าจอของคุณมีลักษณะคล้ายกับสิ่งนี้ -

? Select testing framework: jasmine 
+ [email protected] 
added 90 packages from 432 contributors and audited 11944 packages in 8.753s 

+ [email protected] 
added 2 packages from 1 contributor and audited 11946 packages in 7.299s 

> [email protected] postinstall 
/Users/workspace/NativeScript/NativeApp/node_modules/core-js 

> node -e "try{require('./postinstall')}catch(e){}" 
Thank you for using core-js ( https://github.com/zloirock/core-js ) for 
polyfilling JavaScript standard library! 
The project needs your help! Please consider supporting of core-js on Open 
Collective or Patreon:

> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 
Also, the author of core-js ( https://github.com/zloirock ) is looking for a 
good job -) 
npm WARN [email protected] requires a peer of webpack@^2.0.0 
|| ^3.0.0 but none is installed. You must install peer dependencies yourself. 

+ [email protected] 
added 19 packages from 52 contributors and audited 12012 packages in 9.368s 

+ [email protected] 
added 2 packages from 35 contributors and audited 12014 packages in 6.925s 

+ [email protected] 
updated 1 package and audited 12014 packages in 7.328s 
+ @types/[email protected] 

> [email protected] postinstall /Users/deiva/workspace/NativeScript/NativeApp/node_modules/nativescript-unit
-test-runner 

> node postinstall.js 
+ [email protected] 

added 1 package from 1 contributor and audited 12032 packages in 7.14s 
Successfully installed plugin nativescript-unit-test-runner. 

Example test file created in src/tests 
Run your tests using the "$ tns test <platform>" command.

ตอนนี้ไฟล์ทดสอบถูกสร้างขึ้นภายใน src \ testing \ example.ts

สร้างการทดสอบของคุณ

ให้เราเพิ่มการทดสอบง่ายๆภายในไฟล์ example.ts ดังที่แสดงด้านล่าง -

describe("NativeApp test:", function() { 
   it("Check counter.", function() { 
      expect(mainViewModel.createViewModel().counter).toEqual(10); 
   }); 
   it("Check message.", function () { 
      expect(mainViewModel.createViewModel().message).toBe("10 taps left"); 
   }); 
});

ที่นี่

ขั้นแรกตรวจสอบว่าตัวนับเท่ากับ 10 หรือไม่และตรวจสอบว่าข้อความเหลือ 10 ก๊อกหรือไม่

ให้เราทำการทดสอบในขั้นตอนต่อไป

ทำการทดสอบของคุณ

ตอนนี้เรียกใช้การทดสอบในอุปกรณ์ที่เชื่อมต่อ Android หรือ iOS โดยใช้คำสั่งด้านล่าง -

tns test android

สิ่งนี้จะคืนสถานะต่อไปนี้ -

? To continue, choose one of the following options: (Use arrow keys) 
> Configure for Cloud Builds 
   Configure for Local Builds 
   Configure for Both Local and Cloud Builds 
   Skip Step and Configure Manually

จากนั้นเลือกตัวเลือกด้านล่าง -

? To continue, choose one of the following options: Configure for Local Builds 
Running the setup script to try and automatically configure your environment. 
These scripts require sudo permissions 
.....

ในการเรียกใช้ชุดทดสอบของคุณในโปรแกรมจำลอง Android ให้เรียกใช้คำสั่งต่อไปนี้ -

tns test android --emulator

ตอนนี้เซิร์ฟเวอร์กรรมเตรียมสร้างและปรับใช้โครงการของคุณ

การทดสอบ End To End (E2E)

การทดสอบหน่วยเป็นกระบวนการขนาดเล็กง่ายและรวดเร็วในขณะที่การทดสอบ E2E มีหลายองค์ประกอบที่เกี่ยวข้องและทำงานร่วมกันซึ่งครอบคลุมโฟลว์ในแอปพลิเคชัน ไม่สามารถทำได้โดยการทดสอบหน่วยและการรวม

NativeScript Appiumปลั๊กอินใช้เพื่อทำการทดสอบระบบอัตโนมัติ E2E Appium เป็นกรอบการทดสอบโอเพ่นซอร์สสำหรับแอพมือถือ ในการเพิ่มเฟรมเวิร์กนี้ในโปรเจ็กต์ของคุณคุณต้องมี XCode หรือ Android SDK เวอร์ชันล่าสุดที่สูงกว่า 25.3.0

ติดตั้ง Appium

ให้เราติดตั้ง Appium ทั่วโลกโดยใช้โมดูล npm -

npm install -g appium

ตอนนี้คุณสามารถเห็นคำตอบต่อไปนี้ -

npm install -g appium 
/Users/.npm-global/bin/authorize-ios -> 
/Users/.npm-global/lib/node_modules/ appium/node_modules/.bin/authorize-ios 

> [email protected] install 
/Users/.npm-global/lib/node_modules/ appium/node_modules/appium-windows-driver

> node install-npm.js 
Not installing WinAppDriver since did not detect a Windows system 

> [email protected] postinstall /Users/.npm-
global/lib/node_modules/appium/node_modules/core-js 

> node -e "try{require('./postinstall')}catch(e){}" 
Thank you for using core-js ( https://github.com/zloirock/core-js ) for 
polyfilling JavaScript 
standard library! 
The project needs your help! Please consider supporting of core-js on Open Collective or Patreon: 

> https://opencollective.com/core-js 
> https://www.patreon.com/zloirock 
Also, the author of core-js ( https://github.com/zloirock ) 
is looking for a good job -) 

> [email protected] postinstall/Users/.npm-
global/lib/node_modules/appium/node_modules 
/appium-chromedriver 

> node install-npm.js 
............................................ 
............................................. 
+ [email protected] 
added 671 packages from 487 contributors in 28.889s

เพิ่มปลั๊กอิน

ให้เราเพิ่ม nativescript-dev-appium ปลั๊กอินเป็น devDependency สำหรับโครงการของคุณโดยใช้คำสั่งด้านล่าง -

$ npm install -D nativescript-dev-appium

หลังจากดำเนินการแล้วให้เลือก mocha กรอบและคุณจะได้รับคำตอบที่คล้ายกับสิ่งนี้ -

> node ./postinstall.js 
? What kind of project do you use
? javascript ? Which testing framework do you prefer? mocha 
+ [email protected]

ตอนนี้ไฟล์จะถูกเก็บไว้ในโฟลเดอร์โครงการของคุณ

สร้างอุปกรณ์ของคุณ

ให้เราสร้างอุปกรณ์ Android โดยใช้คำสั่งด้านล่าง -

tns build android

คำสั่งดังกล่าวจะเรียกใช้การทดสอบควรระบุความสามารถที่กำหนดเป้าหมาย หากคุณมีอุปกรณ์ iOS คุณสามารถสร้างโดยใช้ไฟล์iOS อุปกรณ์

เรียกใช้การทดสอบ

ตอนนี้เราได้กำหนดค่าอุปกรณ์แล้ว ให้เราทำการทดสอบโดยใช้คำสั่งด้านล่าง -

npm run e2e -- --runType <capability-name>

ที่นี่

ชื่อความสามารถถูกกำหนดไว้ในแอปพลิเคชันของคุณ e2e/config/appium.capabilities.json.

เอาต์พุต

NativeScript - บทสรุป

NativeScript เป็นแอพมือถือที่ยอดเยี่ยมสำหรับนักพัฒนาเว็บในการทดสอบแอปพลิเคชันของพวกเขาอย่างสมบูรณ์ด้วยวิธีที่ง่ายมากโดยไม่ต้องออกแรงมาก นักพัฒนาสามารถพัฒนาแอปพลิเคชันที่ดูดีและประสบความสำเร็จได้อย่างมั่นใจโดยไม่มีปัญหาใด ๆ ในช่วงเวลาสั้น ๆ