पर निर्भर नहीं है, मैं इकाई परीक्षण को बढ़ाने और परीक्षणों को तेज़ी से चलाने के लिए एमवीपी का उपयोग करने की कोशिश कर रहा हूं (क्योंकि मैं तर्क का परीक्षण कर रहा हूं एंड्रॉइड कोड नहीं, इसलिए मैं रोबोटइलेक्ट्रिक जैसी चीजों का उपयोग करने से बचता हूं)।जुनीट शेड्यूलर जो एंड्रॉइड
लेकिन मैं RXAndroid और यह जरूरत Looper का उपयोग कर Schedulers.io()
और AndroidSchedulers.mainThread()
हो और जब मैं
class Phone {
public Observable<> sendSms(String number){
//...
}
}
Phone.getInstance().sendSms(phoneNumber)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(phone -> {
mView.dismissProgress();
mView.startCodeView(phone);
}, error -> {
mView.dismissProgress();
mView.showError(error);
});
चलाने का प्रयास मैं:
Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details.
at android.os.Looper.getMainLooper(Looper.java)
at rx.android.schedulers.AndroidSchedulers.<clinit>(AndroidSchedulers.java:27)
... 28 more
मैंने कोशिश की:
android {
// ...
testOptions {
unitTests.returnDefaultValues = true
}
}
लेकिन यह काम नहीं करेगा क्योंकि मैं पूर्ण जुनीट परीक्षण चलाने के लिए चाहता हूं और रोबो नहीं बिजली या एस्प्रेसो सामान।
मैं इसे कैसे पूरा कर सकता हूं? क्या कोई शेड्यूलर है जो इस वजह से दुर्घटनाग्रस्त नहीं होगा?
क्या शेड्यूलर्स.ओ() के लिए कोई हुक है? – Caipivara
RxJavaPlugins.getInstance() है। पंजीकरण करें ...भी :) – Caipivara
@danielgomezrico हाँ, लेकिन मैंने इसका उपयोग नहीं किया है, अगर आप अंतर्दृष्टि डाल सकते हैं या –