ผลต่างระหว่างรุ่นของ "Sw-spec/unit-test-and-mock"
ไปยังการนำทาง
ไปยังการค้นหา
Jittat (คุย | มีส่วนร่วม) (หน้าที่ถูกสร้างด้วย '== CounterView.kt == <pre> interface CounterView { fun setCounter(value: Int) } </pre> == CounterPresenter.kt == <pre> class Counte...') |
Jittat (คุย | มีส่วนร่วม) |
||
| แถว 1: | แถว 1: | ||
| − | == CounterView.kt == | + | == Links == |
| + | |||
| + | == Codes == | ||
| + | === CounterView.kt === | ||
<pre> | <pre> | ||
interface CounterView { | interface CounterView { | ||
| แถว 5: | แถว 8: | ||
} | } | ||
</pre> | </pre> | ||
| − | == CounterPresenter.kt == | + | |
| + | === CounterPresenter.kt === | ||
<pre> | <pre> | ||
class CounterPresenter(val view: CounterView) { | class CounterPresenter(val view: CounterView) { | ||
| แถว 32: | แถว 36: | ||
private fun updateCounterInView() { | private fun updateCounterInView() { | ||
view.setCounter(counter) | view.setCounter(counter) | ||
| + | } | ||
| + | } | ||
| + | </pre> | ||
| + | |||
| + | === CounterPresenterTest.kt === | ||
| + | <pre> | ||
| + | import org.junit.Before | ||
| + | import org.junit.Test | ||
| + | import org.mockito.Mockito.* | ||
| + | |||
| + | /** | ||
| + | * Created by jittat on 23/3/2561. | ||
| + | */ | ||
| + | class CounterPresenterTest { | ||
| + | lateinit var view: CounterView | ||
| + | lateinit var presenter: CounterPresenter | ||
| + | |||
| + | @Before | ||
| + | fun init() { | ||
| + | view = mock(CounterView::class.java) | ||
| + | presenter = CounterPresenter(view) | ||
| + | } | ||
| + | |||
| + | @Test | ||
| + | fun testResetCounter() { | ||
| + | presenter.start() | ||
| + | verify(view).setCounter(0) | ||
| + | } | ||
| + | |||
| + | @Test | ||
| + | fun testAddCounter() { | ||
| + | presenter.start() | ||
| + | presenter.onPlusButtonClicked() | ||
| + | |||
| + | val inOrder = inOrder(view) | ||
| + | inOrder.verify(view).setCounter(0) | ||
| + | inOrder.verify(view).setCounter(1) | ||
} | } | ||
} | } | ||
</pre> | </pre> | ||
รุ่นแก้ไขเมื่อ 04:20, 23 มีนาคม 2561
Links
Codes
CounterView.kt
interface CounterView {
fun setCounter(value: Int)
}
CounterPresenter.kt
class CounterPresenter(val view: CounterView) {
var counter: Int = 0
fun onPlusButtonClicked() {
counter++
updateCounterInView()
}
fun onMinusButtonClicked() {
counter--
updateCounterInView()
}
fun onResetButtonClicked() {
reset()
}
fun start() {
reset()
}
private fun reset() {
counter = 0
updateCounterInView()
}
private fun updateCounterInView() {
view.setCounter(counter)
}
}
CounterPresenterTest.kt
import org.junit.Before
import org.junit.Test
import org.mockito.Mockito.*
/**
* Created by jittat on 23/3/2561.
*/
class CounterPresenterTest {
lateinit var view: CounterView
lateinit var presenter: CounterPresenter
@Before
fun init() {
view = mock(CounterView::class.java)
presenter = CounterPresenter(view)
}
@Test
fun testResetCounter() {
presenter.start()
verify(view).setCounter(0)
}
@Test
fun testAddCounter() {
presenter.start()
presenter.onPlusButtonClicked()
val inOrder = inOrder(view)
inOrder.verify(view).setCounter(0)
inOrder.verify(view).setCounter(1)
}
}