मॉकके लाइब्रेरी के लिए गाइड में, उदाहरण मेरे लिए इसे साफ़ नहीं कर रहा है। दस्तावेज़ीकरण से उदाहरण यहां दिया गया है:

class MockedClass {
    fun sum(a: Int, b: Int) = a + b
}

val obj = mockk<MockedClass>()
val slot = slot<Int>()

every {
    obj.sum(any(), capture(slot))
} answers {
    1 + firstArg<Int>() + slot.captured
}

obj.sum(1, 2) // returns 4
obj.sum(1, 3) // returns 5
obj.sum(2, 2) // returns 5

verifyAll {
    obj.sum(1, 3)
    obj.sum(1, 2)
    obj.sum(2, 2)
}

verifySequence {
    obj.sum(1, 2)
    obj.sum(1, 3)
    obj.sum(2, 2)
}

verifyOrder {
    obj.sum(1, 2)
    obj.sum(2, 2)
}

val obj2 = mockk<MockedClass>()
val obj3 = mockk<MockedClass>()
verify {
    listOf(obj2, obj3) wasNot Called
}
9
Sevastyan Savanyuk 31 अक्टूबर 2018, 11:52

1 उत्तर

सबसे बढ़िया उत्तर

विधि verifySequence जांचती है कि केवल निर्दिष्ट कॉलें हुई हैं और यह उसी क्रम में होनी चाहिए। दूसरी ओर विधि verifyOrder भी काम करती है यदि आप कुछ कॉलों को छोड़ देते हैं जैसा कि आपने पहले ही उदाहरण (obj.sum(1, 3)) में किया था। निम्नलिखित विफल हो जाएंगे क्योंकि आप verifySequence के साथ एक कॉल नहीं छोड़ सकते:

verifySequence {
    obj.sum(1, 2)
    obj.sum(2, 2)
}
7
s1m0nw1 31 अक्टूबर 2018, 09:21