Jest.js强制窗口未定义

时间:2018-07-19 14:51:27

标签: reactjs testing jestjs enzyme

我正在使用笑话+酶设置进行测试。我有一个函数,如果定义了窗口,则有条件地渲染某些东西。

在我的测试套件中,我试图达到第二种情况,现在已经定义了window,但是我不能强制这样做。


    it('makes something when window is not defined', () => {
       window = undefined;
       expect(myFunction()).toEqual(thisWhatIWantOnUndefinedWinow);
    });

但是,即使我强制未定义窗口,也无法达到预期的情况,窗口始终是窗口(jsdom?)

我的笑话设置是否有用,还是应该以其他方式处理?

2 个答案:

答案 0 :(得分:0)

这是我在选定的 jest 测试期间强迫window进行不确定的操作。

使用window = undefined进行测试

您可以通过在文件顶部添加@jest-environment node来强制在某些测试文件中未定义窗口。

test-window-undefined.spec.js

/**
 * @jest-environment node
 */

// ^ Must be at top of file

test('use jsdom in this test file', () => {
  console.log(window)
  // will print 'undefined' as it's in the node environment  
});

使用窗口进行测试

如果您需要window对象,只需在顶部删除该语句即可。

credit to this answer here

答案 1 :(得分:0)

我可以使用以下模式测试未定义 while(fichier){ fichier>>s; tab[c_lignes][c_colonnes] = s; c_colonnes++; if(c_colonnes==(nb_colonnes-1)){ tab[c_lignes][c_colonnes] = s; c_colonnes = 0; c_lignes++; //t.push_back(lignes); } } fichier2.close(); return tab; 的情况。它使您可以在同一文件中运行带有和不带有window的测试。不需要在文件顶部添加window

@jest-environment node