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