首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用should.js作为全局变量:

如何使用should.js作为全局变量:
EN

Stack Overflow用户
提问于 2018-09-18 06:04:27
回答 1查看 59关注 0票数 0

我正在尝试写一些使用mocha和should.js的单元测试,因为我想保持每个单元测试的格式相同,并且每个单元测试都需要should.js来验证对象的属性。如何才能将其设置为全局变量,这样就不需要对每个测试文件都使用should.js

代码语言:javascript
复制
global.should = require('should');
describe('try gloabl'), () => {
  it('should work'), () => {
    let user = { name: 'test'};
    global.should(user).have.property('name', 'test');
  });
});
#error, global.should is not a function

如果我用这个。它起作用了

代码语言:javascript
复制
const should = require('should');
should = require('should');
describe('try gloabl'), () => {
  it('should work'), () => {
    let user = { name: 'test'};
    global.should(user).have.property('name', 'test');
  });
});
EN

回答 1

Stack Overflow用户

发布于 2018-09-18 18:10:30

首先,I'm tired of writing "require"是使用全局变量的最糟糕的原因。使用require是一种传统的操作方式,这是有原因的,而且它与任何其他语言没有什么不同,在这些语言中,您必须在每个文件中使用import或键入using。这只会让我们更容易理解以后代码在做什么。有关详细说明,请参阅this

现在,也就是说,当需要should时,该模块实际上将自己附加到全局变量,并使describeitshould方法可访问。

index.js

代码语言:javascript
复制
require('should');

describe('try global', () => {
    it('should work with global', () => {
        let user = { name: 'test' };
        global.should(user).have.property('name', 'test');
    });
    it('should work without global', () => {
        let user = { name: 'test' };
        should(user).have.property('name', 'test');
    });
});

//////
mocha ./index.js

try global
    √ should work with global
    √ should work without global


2 passing (11ms)

我修正了你代码中的拼写错误(例如:从describeit函数中删除额外的) ),并且此代码在与mocha ./index.js一起运行时工作得很好。确保已安装带有npm i -g mochamocha,以使该模块在命令行界面中可用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52376285

复制
相关文章

相似问题

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