Как определить глобальную переменную вне блока описания в мокко?

Привет, я пытался написать тестирование с использованием mocha chimp и webdriverio. так как мне приходилось работать с разными идентификаторами в конце шрифта, в каждом блоке мне приходилось определять их для разных целей. Я попытался определить идентификатор за пределами блока описания, тогда он показывает, что браузер не определен. Вот пример кода.

describe('password validation', function () {
    it('password should be empty @watch ', function () {
        const passwordInput = browser.element('#passwordInput');
        assert.equal(passwordInput.getValue(),"");

    });

    it("should identify weak password @watch",function () {
        const passwordInput = browser.element('#passwordInput');
        passwordInput.setValue("helloWordl");
        browser.waitForVisible(".has-warning",500);
        passwordInput.setValue("helloWordl@3");
    })

    it("should identify miss matched and matched password @watch",function () {
        const confirmpasswordInput = browser.element('#confirmpasswordInput');
        confirmpasswordInput.setValue("adofidlf"); //miss matched password given
        browser.waitForVisible(".has-error",50); //it should shows the error for worng password
        confirmpasswordInput.setValue("helloWordl@3");
        browser.waitForVisible(".has-success",50);

    })

} )

Кто-нибудь может сказать мне, как определить переменную вне описывающего блока, включая нотацию браузера, так что мне не нужно определять их каждый раз в другом описывающем блоке.

2 ответа

Вы можете определить переменные в describe блокировать и использовать beforeEach для инициализации (из документации mocha ( https://mochajs.org/)):

    describe('Connection', function() {
      var db = new Connection,
      tobi = new User('tobi'),
      loki = new User('loki'),
      jane = new User('jane');

      beforeEach(function(done) {
        db.clear(function(err) {
          if (err) return done(err);
          db.save([tobi, loki, jane], done);
        });
      });

      describe('#find()', function() {
        it('respond with matching records', function(done) {
          db.find({type: 'User'}, function(err, res) {
            if (err) return done(err);
            res.should.have.length(3);
            done();
          });
        });
      });
    });

Вы можете определить идентификатор селектора как строку в объекте вне описания. как твой случай будет

const target = {
 input:{
  password:'#passwordInput',
  confirmPassword:'#confirmpasswordInput'
 }
}
describe('something',()=>{console.log(target.input.password)})

!!! "Браузер". Команда не может быть запущена за пределами description (), вам нужно будет описать текущее имя тестового файла для нее и использовать before () или beforeEach() для ее использования. Описание () может содержать другое гнездо.

    describe('Test A',()=>{
         var element = {}
         before(()=>{
          browser.url('...')
          element['input']['password'] = browser.element('passwordInput')
         })
         describe('case A',()=>{
          it('should empty',()=>{
           assert.equal(element.input.password.getValue(),'')
          })
         })
        })
Другие вопросы по тегам