देरी के साथ एक कोटलिन कोरआउटिन का परीक्षण करने वाला यूनिट मैं delay()
का उपयोग करने वाले कोटलिन कोरोटाइन का परीक्षण करने की कोशिश कर रहा हूं। यूनिट टेस्ट के लिए मुझे delay()
पर परवाह नहीं है, यह सिर्फ परीक्षण को धीमा कर रहा है। मैं परीक्षण को किसी भी तरह से चलाने के लिए चाहता हूं जो वास्तव में देरी नहीं करता है जब delay()
कहा जाता है।यूनिट
मैं एक कस्टम संदर्भ में जो प्रतिनिधियों CommonPool के लिए प्रयोग कर coroutine चलाने का भी प्रयास:
class TestUiContext : CoroutineDispatcher(), Delay {
suspend override fun delay(time: Long, unit: TimeUnit) {
// I'd like it to call this
}
override fun scheduleResumeAfterDelay(time: Long, unit: TimeUnit, continuation: CancellableContinuation<Unit>) {
// but instead it calls this
}
override fun dispatch(context: CoroutineContext, block: Runnable) {
CommonPool.dispatch(context, block)
}
}
मुझे उम्मीद थी मैं बस अपना संदर्भ के delay()
विधि से लौटा सकता है, लेकिन इसके बजाय यह मेरी scheduleResumeAfterDelay()
विधि कॉल कर रहा है, और मैं डॉन ' टी को डिफ़ॉल्ट शेड्यूलर को कैसे प्रतिनिधिाना है, यह नहीं पता।
क्या आप देरी टाइमआउट कॉन्फ़िगर करने योग्य नहीं कर सकते हैं ताकि आपके परीक्षण में आप एक बहुत छोटा चुन सकें ?! – s1m0nw1
@ s1m0nw1 हां, लेकिन मेरे पास एक सामान्य समाधान होगा, और इस तरह मेरे कोड को संशोधित करने की आवश्यकता नहीं है। –
@eoinmullan, क्या आप इसके लिए न्यूनतम गिट प्रोजेक्ट साझा कर सकते हैं? –