GitHub - wirunpong-j/android-basic-testing · GitHub
Skip to content

wirunpong-j/android-basic-testing

 
 

Folders and files

Repository files navigation

Unit Test

Name Validation

Name Validation คือ การตรวจสอบการใส่ชื่อเข้ามา โดยจะ Test กับ Model ที่ชื่อว่า "NameValidation.java" ซึ่งจะแบ่ง Class สำหรับการทำ Name Validation Unit Test ได้ 2 Class คือ

1.) NameValidationFailTest

คือ Class ที่เช็คว่ามี Case ใดบ้างที่ใส่ค่า Name เข้ามาแล้ว จะเป็นรูปแบบที่ ผิด บ้าง

  • Case 1 - nameIsEmptyString : Check ว่า Name ที่รับเข้ามาเป็น String เปล่า (Ex. "")
  • Case 2 - nameIsNull : Check ว่า Name ที่รับเข้ามาเป็น Null (Ex. null)
  • Case 3 - nameIsLessThanFive : Check ว่า Name ที่รับเข้ามามีความยาวน้อยกว่า 5 ตัวอักษร (Ex. "Bell")
  • Case 4 - nameIsMoreThanFifteen : Check ว่า Name ที่รับเข้ามามีความยาวมากกว่า 15 ตัวอักษร (Ex. "Bellkungziizanaa")
  • Case 5 - nameContainNumber : Check ว่า Name ที่รับเข้ามามีตัวเลขผสมมา (Ex. "Bellkung69")
  • Case 6 - nameContainSpecialCharacter : Check ว่า Name ที่รับเข้ามามีสัญลักษณ์พิเศษผสมมา (Ex. "B@#ell!kun^&{}")
  • Case 7 - nameContainSpace : Check ว่า Name ที่รับเข้ามามีช่องว่างผสมมา (Ex. "Bell kung desu")
  • Case 8 - firstLetterIsLowerCase : Check ว่า Name ที่รับเข้ามาตัวอักษรตัวแรกเป็นตัวพิมพ์เล็ก (Ex. "bellkung")
  • Case 9 - secondLetterOnwardsIsUpperCase : Check ว่า Name ที่รับเข้ามาตังแต่ตัวอักษรที่ 2 เป็นต้นไปเป็นตัวพิมพ์ใหญ่ (Ex. "BELlkunG")

2.) NameValidationSuccessTest

คือ Class ที่เช็คว่าเมื่อใส่ค่า Name เข้ามาแล้ว จะเป็นรูปแบบที่ ถูกต้อง

Case normalName : Check ว่า Name ที่รับเข้ามาจะเป็นเป็นเพียงแค่ชื่อปกติไม่เข้า Case ของ NameValidationFailTest ทุกกรณี (Ex. "Bellkung")

EmailValidation

Email Validation คือ การตรวจสอบการใส่ Email เข้ามา โดยเราจะใช้ 3rd party library ช่วยในการ Check รูปแบบของ Email ซึ่งก็คือ "commons-validator:1.5.1" เนื่องจาก Email นั้นมีความเยอะในการ Check โดยจะ Test กับ Model ที่ชื่อว่า "EmailValidation.java" ซึ่งจะแบ่ง Class สำหรับการทำ Email Validation Unit Test ได้ 2 Class คือ

1.) EmailValidationFailTest

คือ Class ที่เช็คว่ามี Case ใดบ้างที่ใส่ค่า Email เข้ามาแล้ว จะเป็นรูปแบบที่ ผิด บ้าง

  • Case 1 - emailNotContainAtSign : Check ว่า Email ที่รับเข้ามาไม่มีเครื่องหมาย @ อยู่ (Ex. "bell-kunghotmail.com")
  • Case 2 - emailContaonMoreAtSign : Check ว่า Email ที่รับเข้ามามีเครื่องหมาย @ มากกว่า 1 ตัว (Ex. "bell-kung@@@hotmail.com")
  • Case 3 - beforeAtSignContainSpecialCharacter : Check ว่า Email ที่รับเข้ามา ตรงก่อนเครื่องหมาย @ มีสัญลักษณ์พิเศษ (Ex. "bell-kung.@hotmail.com")
  • Case 4 - afterAtSignContainSpecialCharacter : Check ว่า Email ที่รับเข้ามา ตรงหลังเครื่องหมาย @ มีสัญลักษณ์พิเศษ (Ex. "bell-kung@=hotmail.com")
  • Case 5 - afterDomainNameContainSpecialCharacterWithoutDot : Check ว่า Email ที่รับเข้ามา ตรงก่อนเครื่องหมาย Dot (.) นั้นมีสัญลักษณ์พิเศษ (Ex. "bell-kung@hotmail&.com")
  • Case 6 - afterDotContainSpecialCharacter : Check ว่า Email ที่รับเข้ามา ตรงหลังเครื่องหมาย Dot (.) นั้นมีสัญลักษณ์พิเศษ (Ex. "bell-kung@hotmail.^com")
  • Case 7 - userNameContainMoreThanOneDot : Check ว่า Email ที่รับเข้ามา ตรงส่วน Username นั้นมีเครื่องหมาย Dot (.) มากกว่า 1 ตัว (Ex. "be..ll-kung@hotmail.com")
  • Case 8 - afterDomainNameContainMoreThanOneDot : Check ว่า Email ที่รับเข้ามา ตรงส่วน Domain Name มีเครื่องหมาย Dot (.) มากกว่า 1 ตัว (Ex. "bell-kung@hotmail..com")
  • Case 9 - domainNameContainSpecialCharacterWithoutDash : Check ว่า Email ที่รับเข้ามา ตรงส่วน Domain Name มีสัญลักษณ์พิเศษผสมอยู่ ยกเว้นเครื่องหมาย Dash (-) (Ex. "bell-kung@hot*mail.com")
  • Case 10 - afterDotOnwardsContainNumber : Check ว่า Email ที่รับเข้ามา ตรงส่วนหลังเครื่องหมาย Dot (.) เป็นต้นไปมีตัวเลขผสมอยู่ (Ex. "bell-kung@hotmail.c3om")
  • Case 11 - afterDotOnwardsContainSpecialCharacter : Check ว่า Email ที่รับเข้ามา ตรงส่วนหลังเครื่องหมาย Dot (.) เป็นต้นไปมีสัญลักษณ์พิเศษผสมอยู่ (Ex. bell-kung@hotmail.c^om%)
  • Case 12 - afterEmailFormContainSpecialCharacter : Check ว่า Email ที่รับเข้ามา ตรงสิ้นสุดของบรรทัดเป็นสัญลักษณ์พิเศษ (Ex. "bell-kung@hotmail.com$")
  • Case 13 - afterEmailFormContainNumber : Check ว่า Email ที่รับเข้ามาตรงสิ้นสุดของบรรทัดเป็นตัวเลข (Ex. "bell-kung@hotmail.com3")

2.) EmailValidationSuccessTest

คือ Class ที่เช็คว่าเมื่อใส่ค่า Email เข้ามาแล้ว จะเป็นรูปแบบที่ ถูกต้อง

Case normalEmailForm : Check ว่า Email ที่รับเข้ามาจะเป็นเป็น Email ปกติ ถูกต้อง และไม่เข้า Case ของ EmailValidationFailTest ทุกกรณี (Ex. "bell-kung@hotmail.com")

UI Test

MainActivityUITest

เป็น Class ที่ใช้ทำ UI Test ด้วย Espresso โดยเมื่อ Test เสร็จสิ้นจะแสดง Toast ขึ้นมา

  • Case 1 - normalNameAndEmail : Check ว่า Name และ Email ที่ใส่เข้ามาต้องถูกรูปแบบของ Unit Test และต้องขึ้น Toast message ว่า "Success!!!"
  • Case 2 - fillNameWithoutFillEmail : Check ว่าทำการใส่ Name แต่ไม่ใส่ Email เข้ามาจะต้องขึ้น Toast message ว่า "Email is not valid." เนื่องจาก Email ไม่ถูกรูปแบบจาก Case ใน Unit Test
  • Case 3 - fillEmailWithoutFillName : Check ว่าทำการใส่ Email แต่ไม่ใส่ Name เข้ามาจะต้องขึ้น Toast message ว่า "Name is Empty" เนื่องจาก Name ไม่ถูกรูปแบบจาก Case ใน Unit Test ใน method ที่ชื่อว่า "nameIsEmptyString"

FullCoverageReport

alt text

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • Java 100.0%