में एपीआई कॉल को अवरुद्ध नहीं कर रहा है, मैं एक रेडक्स ऐप में एपीआई कॉल का परीक्षण करने की कोशिश कर रहा हूं।नॉक रेडक्स परीक्षण
http://redux.js.org/docs/recipes/WritingTests.html
यह का सार है कि आप रिकॉर्ड और के खिलाफ बात पर जोर देना redux-नकली दुकान का उपयोग करें: कोड काफी पैटर्न Async कार्रवाई रचनाकारों redux किए गए दस्तावेज़ों की अनुभाग में बताया गया इस प्रकार है ट्रिगर किए गए किसी भी क्रिया।
यह वह जगह है पूरे परीक्षण, काटने का निशान का उपयोग कर API कॉल उपहास करने के लिए:
import React from 'React'
import ReactDOM from 'react-dom'
import expect from 'expect';
import expectJSX from 'expect-jsx';
import TestUtils from 'react-addons-test-utils'
import configureMockStore from 'redux-mock-store'
import thunk from 'redux-thunk'
import nock from 'nock'
expect.extend(expectJSX);
import * as types from '../../constants/Actions'
describe('Async Search Actions',() => {
const thunkMiddleware = [ thunk ];
/* use redux-mock-store here */
const mockStore = configureMockStore(thunkMiddleware);
describe('The fetchArtistData action creator should',() => {
afterEach(() => {
nock.cleanAll()
})
it('Should fire off a ARTIST action when fetch is done', (done) => {
nock('http://ws.audioscrobbler.com')
.get('/2.0/')
.query({method: 'artist.search', artist: 'ho', api_key: 'abc123', format: 'json', limit: 5})
.reply(200,
{
fake: true
}
)
const expectedActions = [
{ type: types.ARTIST, artists: {
fake: true
}
}
];
let store = mockStore([], expectedActions, done);
store.dispatch(fetchArtist('ho'))
});
});
});
लेकिन यह है कि वास्तविक LastFM एपीआई जब परीक्षण चलाया जाता है कहा जाता है ... वास्तविक डेटा बल्कि lastfm से दिया जाता है लगता है नकली नकली प्रतिक्रिया से।
यह क्रिया निर्माता ही है:
export function fetchArtist(search) {
return dispatch => {
return fetch(`http://ws.audioscrobbler.com/2.0/?method=artist.search&artist=${search}&api_key=abc123&format=json&limit=5`)
.then(handleErrors)
.then(response => response.json())
.then(json => { dispatch(ArtistData(searchTerm, json)) })
.catch(handleServerErrors)
}
}
दावे विफल रहता है क्योंकि लाइव LastFM प्रतिक्रिया प्रतिक्रिया मैं प्रति expectedActions
वस्तु के रूप में की उम्मीद कर रहा हूँ के रूप में ही नहीं है ..
मैं
काटने का निशान लगाना, यकीन नहीं इस करता है, तो खड़ी कर रहा है वास्तविक एपीआई मज़ाक उड़ाया नहीं किया जा करने के लिए यूआरएल को पोर्ट 80 को जोड़ने जा रहा है: लॉग out.The एक चर को काटने का निशान बताए और यह लोग इन की कोशिश की दिया है इस से पता चलता
keyedInterceptors: Object{GET http://ws.audioscrobbler.com:80/2.0/?
method=artist.search&artist=john&api_key=abc123&format=json&limit=5
कोई विचार यहां क्या गलत है?
तरह उपहास करने के लिए एक अलग लाइब्रेरी का उपयोग आप नोड या में यह चला रहे हैं ब्राउज़र? मुझे विश्वास नहीं है कि ब्राउज़र में नॉक काम करता है, केवल –
आह ठीक है, यह समस्या है, तो मैं फ़ैंटॉमजे –
पर परीक्षण चला रहा हूं ऐसा लगता है जैसे नॉक ब्राउज़र को पसंद नहीं करता है https://github.com/node-nock/काटने का निशान/मुद्दों/409। –