នៅពេលដែលអ្នកមានអេក្រង់នៅក្នុងកម្មវិធី Android របស់អ្នកដែលមានមុខងារកាមេរ៉ា និង/ឬវិចិត្រសាលជាមួយនឹងការផ្លាស់ប្តូរអេក្រង់មួយចំនួន (ទិដ្ឋភាព ស្លាក ឬប៊ូតុងដែលបង្ហាញ/បាត់។ល។) ហើយអ្នកត្រូវសរសេរការធ្វើតេស្ត Espresso មួយចំនួនសម្រាប់មុខងារ/អេក្រង់ទាំងនោះ ពីអ្នកជំនួយដែលខ្ញុំកំពុងប្រើ ហើយខ្ញុំចង់ចែករំលែកជាមួយអ្នកទាំងអស់គ្នា។ ការអនុញ្ញាត នៅពេលអ្នកកំពុងប្រើកាមេរ៉ានៅក្នុងកម្មវិធីរបស់អ្នក អ្នកត្រូវផ្តល់ការអនុញ្ញាតខ្លះនៅក្នុងឧបករណ៍ ដើម្បីអាន/រក្សាទុករូបថត។ ការអនុញ្ញាតទាំងនេះត្រូវបានសួរនៅក្នុងពេលដំណើរការ ដែលជាធម្មតាទាក់ទងទៅនឹង READ_EXTERNAL_STORAGE និង WRITE_EXTERNAL_STORAGE ។
ដូច្នេះ GrantPermissionRule អនុញ្ញាតឱ្យផ្តល់ការអនុញ្ញាតពេលដំណើរការនៅលើ Android M (API 23) និងខ្ពស់ជាងនេះ ហើយនៅពេលអនុវត្តចំពោះថ្នាក់សាកល្បង ច្បាប់នេះព្យាយាមផ្តល់សិទ្ធិពេលដំណើរការដែលបានស្នើសុំទាំងអស់.@get:Rulevar mRuntimePermissionRule = GrantPermissionRule.grant(Android.
Manifest.permission.WRITE_EXTERNAL_STORAGE)ជាធម្មតាច្បាប់នេះត្រូវបានប្រើដើម្បីផ្តល់ការអនុញ្ញាតពេលដំណើរការដើម្បីជៀសវាងប្រអប់ការអនុញ្ញាតពីការបង្ហាញ និងរារាំងកម្មវិធី Ui ហើយយោងតាមឯកសារផ្លូវការ៖ តាមក្បួននេះនឹងផ្តល់ READ_EXTERNAL_STORAGE ដោយស្វ័យប្រវត្តិនៅពេលដែល WRITE_EXTERNAL_STORAGE ត្រូវបានស្នើសុំកូដទាំងអស់ សាកល្បងនៅពេលដែលរូបតំណាងវិចិត្រសាលត្រូវបានចុចនៅក្នុងកម្មវិធី បន្ទាប់មករូបភាពមួយត្រូវបានជ្រើសរើស និងបង្ហាញនៅក្នុងអេក្រង់៖ រឿងដំបូងនៅទីនេះគឺថាខ្ញុំមានវិធីសាស្ត្រជំនួយ (CameraAndGallery.
savePickedImage) ដែលរក្សាទុករូបភាពដំបូង (សម្រាប់ភាពសង្ខេបនៃរូបតំណាង ic_launcher) ដែលនឹងត្រូវប្រើក្នុងការធ្វើតេស្តជាឯកសារមូលដ្ឋានដែលអាចមើលឃើញសម្រាប់ការធ្វើតេស្ត៖ ប៉ារ៉ាម៉ែត្រសកម្មភាពបានមកពី ActivityTestRule:@get:Rulevar mActivityTestRule = IntntsTestRule(MyActivity: :class.java)បន្ទាប់មកខ្ញុំបង្កើតវត្ថុ ActivityResult (ដូចជាការចំអកមួយ ប៉ុន្តែសម្រាប់ Android Intent) ដែលនឹងត្រូវប្រើដោយ Espresso Intent matcher (ដើម្បីផ្គូផ្គង និងធ្វើឱ្យមានសុពលភាពនៃចេតនាចេញ):val imgGalleryResult = CameraAndGallery.createImageGallerySetResultStub(mectivity
សកម្មភាព) បំណង(hasAction(Intent.ACTION_CHOOSER)).respondWith(imgGalleryResult)អាថ៌កំបាំងនៅទីនេះគឺដើម្បីសួររកឯកសារដែលបានរក្សាទុកពីមុន ហើយចុងក្រោយប្រើជាលទ្ធផល។
ចំណាំ៖ ដើម្បីធ្វើការជាមួយ espresso បំណង យើងត្រូវតែបន្ថែមភាពអាស្រ័យនេះទៅកម្មវិធីបង្កើត។ ឯកសារកម្រិត៖ androidTestImplementation androidx.test។
espresso:espresso-intents:$espressoVersion សម្រាប់ការធ្វើតេស្តដែលយើងកំពុងសរសេរ អនុញ្ញាតឱ្យសន្មតថារូបភាពដែលបានជ្រើសរើសពីវិចិត្រសាល យើងកំពុងកំណត់វានៅក្នុង ImageView ដែលអាចមើលឃើញសម្រាប់អ្នកប្រើប្រាស់ បន្ទាប់មកផ្នែកចុងក្រោយនៃការធ្វើតេស្តគឺត្រូវពិនិត្យមើលថា រូបភាពត្រូវបានបង្ហាញ (វិធីសាស្រ្ត hasImageSet()): onView(withId(R.id.auctionphotos_bigimage_viewer)) ។
check(matches(hasImageSet()))Camera Test ស្រដៀងទៅនឹង Gallery Test ការធ្វើតេស្តដើម្បីទទួលបានរូបភាពពីឧបករណ៍ Camera ធ្វើតាមជំហានស្ទើរតែដូចគ្នា ប៉ុន្តែក្នុងករណីនេះរូបភាពមិនចាំបាច់ត្រូវបានរក្សាទុកពីមុនទេ គ្រាន់តែចំអកលទ្ធផលនៃ កាមេរ៉ា៖ លទ្ធផលថតចំអកដូចខាងក្រោម៖ រូបភាពលទ្ធផលនឹងត្រូវបានថតដោយចេតនា៖ ចេតនា(hasAction(MediaStore. ACTION_IMAGE_CAPTURE)). responseWith(imgCaptureResult) ហើយជាមួយនោះ យើងអាចពិនិត្យមើលថាតើរូបភាពត្រូវបានថត និងបង្ហាញ៖ onView(withId(R.
id.auctionphotos_bigimage_viewer)).check(matches(hasImageSet()))) ជាចុងក្រោយ ប្រសិនបើអ្នកចង់ស្វែងយល់បន្ថែមបន្តិចទៀតទាក់ទងនឹងការធ្វើតេស្ត Espresso និង Intent អ្នកប្រហែលជាចង់មើល repo នេះពីក្រុម Android ផ្លូវការ
Shenzhen TigerWong Technology Co., Ltd
ទូរស័ព្ទ ៖86 13717037584
អ៊ីមែល៖ Info@sztigerwong.comGenericName
បន្ថែម៖ ជាន់ទី 1 អគារ A2 សួនឧស្សាហកម្មឌីជីថល Silicon Valley Power លេខ។ 22 ផ្លូវ Dafu, ផ្លូវ Guanlan, ស្រុក Longhua,
ទីក្រុង Shenzhen ខេត្ត GuangDong ប្រទេសចិន