Javascript “如何嘲笑”;“窗口.屏幕.方向.锁”;使用玩笑的函数?

Javascript “如何嘲笑”;“窗口.屏幕.方向.锁”;使用玩笑的函数?,javascript,angular,unit-testing,cordova,jestjs,Javascript,Angular,Unit Testing,Cordova,Jestjs,我们正在使用一个cordova插件来锁定混合应用程序的方向。在AppComponent中,我们有一个锁定屏幕方向的代码。为此,我们使用了window.screen.orientation.lock函数。如何使用Jest模拟上述函数?默认情况下Jest使用jsdom提供类似浏览器的环境 是jsdom为window.screen实现的 定向不是由jsdom实现的,但它可以添加到窗口中。在测试过程中,由jsdom提供的屏幕: code.js export const func = () => {

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

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

jsdom
window.screen
实现的

定向
不是由
jsdom
实现的,但它可以添加到
窗口中。在测试过程中,由
jsdom
提供的屏幕

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!
})
从“/code”导入{func};
测试('func',()=>{
const lock=jest.fn();

window.screen.orientation={lock};//默认情况下
Jest
使用
jsdom
提供类似浏览器的环境

jsdom
window.screen
实现的

定向
不是由
jsdom
实现的,但它可以添加到
窗口中。在测试过程中,由
jsdom
提供的屏幕

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!
})
从“/code”导入{func};
测试('func',()=>{
const lock=jest.fn();
window.screen.orientation={lock}//