Android TDD CodeLab 01. Testing Basics Task. 1~7
class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
}
//계측 테스트는 거의 항상 Android OS 또는 Android 프레임워크를 사용합니다.
//InstrumentationRegistry를 사용하여 context를 얻어서 패키지 이름을 테스트 하기 때문에 계측 테스트로 테스트 해야 합니다.
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.example.android.architecture.blueprints.reactive",
appContext.packageName)
}
}
//Junit.assertion
assertEquals(result.activeTasksPercent,100f)
assertEquals(result.completedTasksPercent,0f)
//Hamcrest - 가독성이 더 좋음
//is 에 뒷따옴표가 있는 이유?
//코틀린에서 이미 is는 예약어이다.
//따라서 hamcrest에서 뒷따옴표를 붙여서 코틀린의 is와 구별한다.
assertThat(result.activeTasksPercent, `is`(100f))
assertThat(result.completedTasksPercent, `is`(0f))
@Test
fun getActiveAndCompletedStats_noCompleted_returnsHundredZero() {
// Create an active tasks (the false makes this active)
val tasks = listOf<Task>(
Task("title", "desc", isCompleted = false)
)
// Call your function
val result = getActiveAndCompletedStats(tasks)
// Check the result
assertThat(result.activeTasksPercent, `is`(100f))
assertThat(result.completedTasksPercent, `is`(0f))
}
package com.example.android.architecture.blueprints.todoapp.statistics
import com.example.android.architecture.blueprints.todoapp.data.Task
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.core.Is.`is`
import org.junit.Test
class StatisticsUtilsTest {
//함수 이름 짓는 법 : 테스트중인 메서드or클래스_작업_예상결과
@Test
fun getActiveAndCompletedStats_noCompleted_returnsHundredZero() {
// Create an active task
val task1 = Task("test1", "test1", false)
val task2 = Task("test2", "test2", false)
val list = listOf<Task>(task1, task2)
// Call your function
val result = getActiveAndCompletedStats(list)
// Check the result
// assertEquals(result.activeTasksPercent,100f)
// assertEquals(result.completedTasksPercent,0f)
assertThat(result.activeTasksPercent, `is`(100f))
assertThat(result.completedTasksPercent, `is`(0f))
}
@Test
fun getActiveAndCompletedStats_empty_returnsZeros() {
// Create an active task
val list = listOf<Task>()
// Call your function
val result = getActiveAndCompletedStats(list)
// Check the result
assertThat(result.activeTasksPercent, `is`(0f))
assertThat(result.completedTasksPercent, `is`(0f))
}
@Test
fun getActiveAndCompletedStats_noActive_returnsZeroHundred() {
// Create an active task
val task2 = Task("test2", "test2", true)
val list = listOf<Task>(task2)
// Call your function
val result = getActiveAndCompletedStats(list)
// Check the result
assertThat(result.activeTasksPercent, `is`(0f))
assertThat(result.completedTasksPercent, `is`(100f))
}
@Test
fun getActiveAndCompletedStats_error_returnsZeros() {
// Create an active task
// Call your function
val result = getActiveAndCompletedStats(null)
// Check the result
assertThat(result.activeTasksPercent, `is`(0f))
assertThat(result.completedTasksPercent, `is`(0f))
}
@Test
fun getActiveAndCompletedStats_both_returnsFortySixty() {
// Create an active task
val task1 = Task("test1", "test1", true)
val task2 = Task("test2", "test2", true)
val task3 = Task("test3", "test3", true)
val task4 = Task("test4", "test4", false)
val task5 = Task("test5", "test5", false)
// Call your function
val result = getActiveAndCompletedStats(listOf(task1, task2, task3, task4, task5))
// Check the result
assertThat(result.activeTasksPercent, `is`(40f))
assertThat(result.completedTasksPercent, `is`(60f))
}
}