gpt4 book ai didi

mocha.js - 单元测试 redux-saga 选择

转载 作者:行者123 更新时间:2023-12-02 14:49:22 25 4
gpt4 key购买 nike

我有一个这种形式的简单传奇:

const getAccountDetails = function * () {
const { url } = yield select(state => state.appConfig)
const accountDetails = yield call(apiFetchAccountDetails, url)
}

我正在尝试编写单元测试:

describe('getAccountDetails', () => {
const iterator = getAccountDetails()
it("should yield an Effect 'select(state=> state.appConfig)'", () => {
const effect = iterator.next().value
const expected = select(state => state.appConfig)
expect(effect).to.deep.eql(expected)
})

这个测试失败了。尽管 effectexpected 非常相似,但它们并不完全相同。

至少在payload.selector.scopes中隐藏了一个不同点,其​​中产生的效果和预期如下:

screen shot

由于这两者的范围始终不同,如何才能使这些测试发挥作用?

eta:此模式改编自the example链接到 redux-saga 文档

最佳答案

找到this issue后破解了从回来的路上。

修复方法是创建一个命名函数来执行选择并将其从被测传奇所在的模块中导出,然后在测试中使用相同的函数。一切顺利。

export const selectAppConfig = state => state.appConfig

const getAccountDetails = function * () {
const { url } = yield select(selectAppConfig)
const accountDetails = yield call(apiFetchAccountDetails, url)
}
    import {selectAppConfig} from './sagaToTest'

describe('getAccountDetails', () => {
const iterator = getAccountDetails()
it("should yield an Effect 'select(state=> state.appConfig)'", () => {
const effect = iterator.next().value
const expected = select(selectAppConfig)
expect(effect).to.deep.eql(expected)
})




关于mocha.js - 单元测试 redux-saga 选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56632514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com