मेरे पास एक वेबपैप प्रोजेक्ट है जो flux को लागू करने के लिए rxjs5 का उपयोग करता है और मैं वर्तमान में यूनिट परीक्षण लिखने के लिए समाधान ढूंढ रहा हूं।किसी अन्य प्रोजेक्ट के अंदर संगमरमर परीक्षण rxjs5 विधि का उपयोग
वास्तव में, मैं कस्टम observables लागू कर दिया है अंदर, उदाहरण के लिए:
function getActivityObservable(events, timeout) {
return Observable.create((observer) => {
const deb = debounce(() => observer.next(false), timeout || DEFAULT_TIMEOUT);
const sub = events.subscribe((e) => {
if (!e) {
deb.cancel();
observer.next(false);
} else {
observer.next(true);
deb(e);
}
});
return() => {
if (sub) sub.unsubscribe();
if (deb) deb.cancel();
};
}).distinctUntilChanged();
}
मैं marble testing way का उपयोग कर इसे परीक्षण करने और की तरह कुछ लिखने के लिए चाहते हैं
(i rxjs भंडार से एक नमूना उदाहरण लिया)describe("getActivityObservable",() => {
it("should debounce by selector observable",() => {
const e1 = hot("--a--bc--d----|");
const e1subs = "^ !";
const expected = "----a---c--d--|";
expectObservable(e1.debounce(getTimerSelector(20))).toBe(expected);
expectSubscriptions(e1.subscriptions).toBe(e1subs);
});
});
मेरा प्रश्न है:
यह संगमरमर परीक्षण विधि (hot
की तरह उपयोग करना संभव ऑपरेटरों के साथ है, cold
और इतने पर ...) rxjs5 परियोजना के बाहर। मुझे नहीं पता कि मेरी परियोजना में इस अच्छे टूल का उपयोग कैसे करें।
आपकी मदद के लिए धन्यवाद।
आप कर सकते हैं, लेकिन इस समय यह बहुत ergonomic नहीं है। असल में आपको 'टेस्टशेड्यूलर' के उदाहरण की आवश्यकता होती है और इसमें सभी 'createHotObservable' और 'expectObservable' विधियां और सामान हैं। फिर आप इसे बनाने के लिए शेड्यूलर पर 'फ्लश()' कहते हैं। –
मुझे लगता है, धन्यवाद। क्या आप अभी इस अवलोकन का परीक्षण करने के लिए इस विधि का उपयोग करने की सलाह देंगे? या आप भविष्य में संगमरमर परीक्षण का पर्दाफाश करने की योजना बना रहे हैं? –
आप अभी इस अवलोकन का परीक्षण करने के लिए इस विधि का उपयोग कर सकते हैं, हम हैं। यह अभी तक ऐसा करने के लिए बहुत ही ergonomic नहीं है। –