首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Jest模拟optimizelySDK.createInstance().onReady()?

如何使用Jest模拟optimizelySDK.createInstance().onReady()?
EN

Stack Overflow用户
提问于 2020-10-29 00:06:53
回答 1查看 838关注 0票数 0

下面是模拟文件__mocks__/@optimizely/optimizely-sdk.js

代码语言:javascript
运行
复制
const optimizelySDK = jest.requireActual('@optimizely/optimizely-sdk')

optimizelySDK.createInstance().onReady = () => ({ success: false }))

module.exports = optimizelySDK

这是我的测试文件Optimizely.test.js

代码语言:javascript
运行
复制
import optimizelySDK from '@optimizely/optimizely-sdk'

test('onReady', () => {
  const response = optimizelySDK.createInstance().onReady()
  expect(response).toBe({ success: false })
})

我想我可能搞错了。当我和房客一起尝试这个的时候,这个效果很好。我相信这是因为optimizelySDK是一个类。我觉得我应该嘲笑你。如何成功地模拟和测试optimizelySDK?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-31 11:35:24

对于在谷歌( Google )上遇到这种情况的人来说,我也遇到了同样的问题,并让它在开玩笑的情况下工作:

代码语言:javascript
运行
复制
jest.mock('@optimizely/optimizely-sdk', () => ({
  ...jest.requireActual('@optimizely/optimizely-sdk'),
  createInstance: () => ({
    getEnabledFeatures: jest.fn().mockReturnValueOnce(['featureA', 'featureB']),
    onReady: jest.fn().mockResolvedValueOnce({ status: 200 })
  })
}))

describe('my-test', () => {

  it('should pass', async () => {

    const result = await getFeatures()

    console.log(result) // ['featureA', 'featureB']

    // assert on result here
  });
});

我的代码看起来像是:

代码语言:javascript
运行
复制
const getFeatures = async (event) => {

  try {
    const optimizelyInstance = optimizelySDK.createInstance({
      sdkKey: process.env.OPTIMIZLEY_SDK_KEY,
    });

    const optimizelyParameters = {}

    return optimizelyInstance.onReady().then(() => {
      const result = optimizelyInstance.getEnabledFeatures('id', optimizelyParameters);

      return result;
    });
  } catch (err) {
    console.error('Could not get features', err);
  }
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64583077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档