【问题标题】:How to mock "window.screen.orientation.lock" function using Jest?如何使用 Jest 模拟“window.screen.orientation.lock”功能?
【发布时间】:2019-09-18 11:20:42
【问题描述】:

我们正在使用其中一个 cordova 插件来锁定我们的混合应用程序的方向。在 AppComponent 中,我们有一个锁定屏幕方向的代码。为此,我们使用了 window.screen.orientation.lock 功能。如何使用 Jest 模拟上述函数?

【问题讨论】:

    标签: javascript angular unit-testing cordova jestjs


    【解决方案1】:

    默认情况下,Jest 使用 jsdom 提供类似浏览器的环境。

    Thisjsdomwindow.screen 实现的。

    orientation 不是由jsdom 实现的,但可以在测试过程中将其添加到jsdom 提供的window.screen 中:

    code.js

    export const func = () => {
      window.screen.orientation.lock();
    }
    

    code.test.js

    import { func } from './code';
    
    test('func', () => {
      const lock = jest.fn();
      window.screen.orientation = { lock };  // <= add orientation mock to window.screen
    
      func();
    
      expect(lock).toHaveBeenCalled();  // Success!
    })
    

    【讨论】:

      猜你喜欢
      • 2018-01-18
      • 2021-11-01
      • 2019-01-20
      • 2019-08-28
      • 2019-07-16
      • 1970-01-01
      • 2021-05-10
      • 2020-09-22
      • 1970-01-01
      相关资源
      最近更新 更多