Как использовать should.js в качестве глобальной переменной: - PullRequest
0 голосов
/ 18 сентября 2018

Я пытаюсь написать какой-нибудь модульный тест, использующий mocha и should.js, так как я хотел бы сохранить формат для каждого из моих модульных тестов одинаковым, а каждый модульный тест требует must.js для проверки свойства объекта. Как я могу сделать его глобально переменным, поэтому мне не нужно требовать must.js для каждого тестового файла, пока я пробовал

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

и если я использую это. это работает

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

1 Ответ

0 голосов
/ 18 сентября 2018

Прежде всего, I'm tired of writing "require" является худшей причиной для использования переменной GLOBAL. Существует причина, по которой использование require является обычным способом ведения дел, и оно ничем не отличается от любого другого языка, где вам нужно import или вводить using в каждом файле. Это только облегчает понимание того, что код делает позже. См. this для дальнейшего объяснения.

Теперь, при этом, когда требуется should, модуль фактически присоединяется к переменной GLOBAL и делает доступными методы describe, it и should.

index.js

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)

Я исправил опечатки в вашем коде (например, удалив лишние ) из describe и it функции), и этот код прекрасно работает при работе с mocha ./index.js. Убедитесь, что вы установили mocha с npm i -g mocha, чтобы модуль был доступен в CLI.

...