นี่คือเฟรมเวิร์กเล็ก ๆ ที่มีรหัสนั่งร้านส่วนใหญ่ (พร้อมยูทิลิตี้ที่ดีและซอร์สโค้ดที่เตรียมไว้) จำเป็นต้องเริ่มต้น แอปพลิเคชัน Android ใหม่
ใช่ Android Studio อาจสร้างโครงการให้คุณ แต่มีชิ้นส่วนที่ขาดหายไปซึ่งฉัน มัก จะเพิ่มทุกโครงการที่ฉันสร้าง เฟรมเวิร์กเล็ก ๆ นี้ (ฉันจะบอกว่ารหัสนั่งร้านยังคงอยู่) มีจุดมุ่งหมายเพื่อแก้ปัญหานี้โดยการสร้างโครงการ Android ด้วยการสร้างบล็อกพื้นฐาน ตรวจสอบส่วน สิ่งที่ต้องทำ ด้านล่างสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิวัฒนาการและความคืบหน้า
เสรีภาพ. มันใช้เครื่องมือมาตรฐาน แต่จัดระเบียบในลักษณะที่อำนวยความสะดวกในการพัฒนา Android คุณสามารถ refactor หรือเปลี่ยนแปลงอะไรก็ได้ แต่ความคิดคือการมีจุดเริ่มต้นที่แข็งแกร่ง การเดินสายทั้งหมดทำเพื่อคุณด้วยความยืดหยุ่นในการแก้ไขตามความต้องการของคุณ
Kotlin DSL โดยค่าเริ่มต้นที่ Gradle Build System LeveBaseActivity และ BaseFragmentsUnitTest , AndroidTest , AcceptanceTestbuildScr ) จัดโดยด้าน:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts ไฟล์)DEBUGRELEASEDEVINTERNALPUBLICLiveData และ ViewModel เนื่องจากวิศวกรบางคนอาจใช้วิธีการอื่นในระดับ UI เช่น MVI, MVP ฯลฯ./gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppในขณะที่มีขั้นตอนด้วยตนเองสองสามขั้นตอนที่เกี่ยวข้องตั้งแต่เราอยู่ในช่วงแรก แต่เราเชื่อในวิวัฒนาการของโซฟแวร์ใช่ไหม ดังนั้นคอยติดตามและตรวจสอบทั้ง วิธีการมีส่วนร่วม และส่วน รายการสิ่งที่ต้องทำ
com.fernandocejas.sample โดยค่าเริ่มต้น สมมติว่าคุณต้องการเขียนการทดสอบ (และคุณควรทำ เสมอ ) ตามที่กล่าวไว้ว่ามี 3 ชั้นเรียนที่เข้ามาเล่นและนี่คือตัวอย่างของการใช้งาน:
UnitTest.kt : ชั้นฐานทดสอบหน่วยที่ติดตั้ง mocks สำหรับคุณ (คุณใช้คำอธิบายประกอบ @Mockk เท่านั้น) class FeatureFlagTest : UnitTest () {
@Mockk prival val yourMock
@Test
fun `given a feature flag, when it is activated, then executes given logic block` () {
val activeFlag = ActiveFeatureFlag ()
val fakeNavigator = mockk< Navigator >(relaxed = true )
activeFlag whenActivated {
fakeNavigator.doSomething()
fakeNavigator.navigateToActiveFeature()
fakeNavigator.doSomething()
}
verify(exactly = 1 ) { fakeNavigator.navigateToActiveFeature() }
verify(exactly = 2 ) { fakeNavigator.doSomething() }
}AndroidTest.kt : คลาสฐานทดสอบการรวมซึ่งตั้งค่าการจำลองสำหรับคุณ (คุณใช้คำอธิบายประกอบ @Mockk เท่านั้น) คุณอาจใช้คลาสนี้เมื่อพวกเขาเป็นส่วนประกอบ Android ที่เกี่ยวข้อง มันถูกสำรองโดย robolectric class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : UI Test Base Class ซึ่งตั้งค่าเอสเพรสโซ่สำหรับคุณ class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity มีกรอบการตั้งค่าสถานะออฟไลน์ที่เรียบง่ายพร้อม API ที่ง่ายมากที่สร้างขึ้นในเวลาคอมไพล์ หากคุณต้องการข้อมูลเพิ่มเติมโปรดดูคำขอดึงที่แนะนำ (TODO: เพิ่มเอกสารเพิ่มเติม)
ตัวอย่างการใช้งาน:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.ktsquality.gradle.kts ./gradlew setupProject io.android-trinity หรือ io.android.trinity ไม่มีอะไรตั้งอยู่ในหินที่นี่และสิ่งต่าง ๆ สามารถเปลี่ยนแปลงและวิวัฒนาการได้ตามงานและข้อกำหนดของชุมชน ดังนั้นหากคุณต้องการมีส่วนร่วมอย่าลังเลที่จะเปิดปัญหาและติดฉลากอย่างถูกต้อง: บั๊ก การปรับปรุง ฯลฯ หรือส่ง PR โปรดทั้งคู่พร้อมคำอธิบายที่ดีเกี่ยวกับความตั้งใจเพื่ออำนวยความสะดวกในการตรวจสอบ
Copyright 2021 Fernando Cejas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
