我有一个带有node / express
的模拟api设置 i < arrayOfObjects.commands.length
我正在使用redux-observable来获取json:
http://localhost:8080/api/lyric/
问题是,当我测试时,我使用const fetchLyricEpic = action$ =>
action$.ofType(FETCH_LYRIC)
.mergeMap(action =>
ajax.getJSON('/api/lyric')
.map(response => fetchLyricSuccess(response))
.catch(error => Observable.of(fetchLyricFail(error)))
)
得到api错误而不是200:
nock
我正在尝试按照我在nock文档和问题列表中阅读的内容,但是,我的nock api调用仍然失败。
beforeEach(() => {
nock.disableNetConnect()
nock.enableNetConnect('127.0.0.1:3000/')
})
afterEach(() => {
nock.cleanAll()
nock.enableNetConnect()
epicMiddleware.replaceEpic(rootEpic)
})
test('it creates FETCH_SUCCESS when fetching the lyric has been done', () => {
const payload = {
status: 200,
response: {
'lyric': "Lyric"
}
}
nock('127.0.0.1:3000/')
.get('/api/lyric')
.reply(200, payload, {'Content-Type': 'application/json'})
我应该收到Expected value to equal:
[{"type": "FETCH_LYRIC"}, {"payload": {"lyric": "Lyric"}, "type": "FETCH_LYRIC_SUCCESS"}]
Received:
[{"type": "FETCH_LYRIC"}, {"payload": {}, "type": "FETCH_LYRIC_ERROR"}]
而不是我看到:
FETCH_LYRIC_SUCCESS
答案 0 :(得分:1)
从错误消息中,它听起来与此处描述的问题相同:https://github.com/tmpvar/jsdom/issues/1706
我正在开发一个项目,它使用带有jsdom和酶的mocha在Node中的虚拟dom中运行我们的集成测试。现在我正在使用节点6.9.2,一切正常。我尝试使用7.4.0,但运行测试我得到了错误
(几乎相同的堆栈跟踪)
如果确实相同,有些人报告说这是Node 7.4.0的一个问题,升级到7.5.0或更高版本就解决了这个问题。
哈!我刚刚将Node从7.4.0升级到新的7.5.0,问题似乎消失了。你确定吗?如果是这样,可以关闭此问题。 https://github.com/tmpvar/jsdom/issues/1706#issuecomment-276705307
7.5.0对我有用!
https://github.com/tmpvar/jsdom/issues/1706#issuecomment-276774035