मेरी सागा फ़ाइलों का 100% कवरेज प्राप्त करने के लिए मैं देख रहा हूं कि वॉचर्स का परीक्षण कैसे करें।इकाई परीक्षण redux-saga watchers का बिंदु क्या है?
मैं चारों ओर घूम रहा हूं, ऐसे कई जवाब हैं जो देखने वालों को परीक्षण करने के लिए हैं। यही है, सागा है जो takeEvery
या takeLatest
करता है।
हालांकि, परीक्षण के सभी तरीके मूल रूप से कार्यान्वयन की प्रतिलिपि बनाने लगते हैं। तो अगर यह वही है तो एक परीक्षा लिखने का क्या मतलब है?
उदाहरण:
// saga.js
import { delay } from 'redux-saga'
import { takeEvery, call, put } from 'redux-saga/effects'
import { FETCH_RESULTS, FETCH_COMPLETE } from './actions'
import mockResults from './tests/results.mock'
export function* fetchResults() {
yield call(delay, 1000)
yield put({ type: FETCH_COMPLETE, mockResults })
}
export function* watchFetchResults() {
yield takeEvery(FETCH_RESULTS, fetchResults)
}
टेस्ट विधि 1:
import { takeEvery } from 'redux-saga/effects'
import { watchFetchResults, fetchResults } from '../sagas'
import { FETCH_RESULTS } from '../actions'
describe('watchFetchResults()',() => {
const gen = watchFetchResults()
// exactly the same as implementation
const expected = takeEvery(FETCH_RESULTS, fetchResults)
const actual = gen.next().value
it('Should fire on FETCH_RESULTS',() => {
expect(actual).toEqual(expected)
})
})
टेस्ट विधि 2: एक सहायक के साथ, Redux Saga Test Plan
की तरह यह लेखन का एक अलग तरीका है, लेकिन फिर हम मूल रूप से एक ही है कार्यान्वयन के रूप में।
import testSaga from 'redux-saga-test-plan'
import { watchFetchResults, fetchResults } from '../sagas'
import { FETCH_RESULTS } from '../actions'
it('fire on FETCH_RESULTS',() => {
testSaga(watchFetchResults)
.next()
.takeEvery(FETCH_RESULTS, fetchResults)
.finish()
.isDone()
})
इसके बजाय मैं बस पता करने के लिए watchFestchResults
हर FETCH_RESULTS लेता है, तो चाहते हैं। या यहां तक कि अगर यह takeEvery()
आग लगती है। इससे कोई फर्क नहीं पड़ता कि यह कैसे चलता है।
या क्या यह वास्तव में ऐसा करने का तरीका है?
का उपयोग कर उदाहरण हाँ, मैं इस से भी विस्मित कर रहा हूँ। उदाहरण परीक्षण सभी परिणामों को सागा प्रभाव निर्माता के साथ तुलना कर रहे हैं। यही वह नहीं है जिसकी मुझे परवाह है। मुझे इस बात की परवाह है कि क्या वे स्टोर को सही स्थिति में रखते हैं। उदाहरणों का परीक्षण बेहद भंगुर लगता है और कुछ भी साबित नहीं करता है। –