Как вызвать функцию с экспортом, определенным за пределами описать () внутри описания () в том же файле JS

Я пытаюсь написать что-то вроде

describe('Create User', function () {
  it('1: All Data Valid', function (done) {
    servicesGenerator.postPlayoApi(apiEndPoints.createUser)
    .send(this.getValidUserCreateBody())
    .end(function (err, res) {
      validator.userDataTypeValidator(err, res);
      done();
    });
  });
});

exports.getValidUserCreateBody = function() {
  return {
    "emailId": testData.emailIdDefault,
    "fName": testData.fNameDefault,
    "lName": testData.lNameDefault,
    "gender": testData.genderDefault,   
  };
}

Но это дает ошибку TypeError: this.getValidUserCreateBody не является функцией Как мне перейти к реализации этого потока?

1 ответ

Решение

Подняв тебя. Пожалуйста, определите getValidUserCreateBody выше описания.

Также, this в функции отличается тем, что this вне. Попробуйте использовать getValidUserCreateBody через закрытие.

var getValidUserCreateBody = function() {
  return {
    "emailId": testData.emailIdDefault,
    "fName": testData.fNameDefault,
    "lName": testData.lNameDefault,
    "gender": testData.genderDefault,   
  };
}

exports.getValidUserCreateBody = getValidUserCreateBody; //You don't necessarily need this line if you don't use it outside this file.

describe('Create User', function () {
  it('1: All Data Valid', function (done) {
    servicesGenerator.postPlayoApi(apiEndPoints.createUser)
    .send(getValidUserCreateBody())
    .end(function (err, res) {
      validator.userDataTypeValidator(err, res);
      done();
    });
  });
});
Другие вопросы по тегам