2015-03-26 3 views
0

Я не уверен, как поставить вопрос, чтобы он имел смысл. Скажем, у меня есть тест Mocha, и я хочу вернуть объект после теста. Например:Возвращаемое значение из test.describe рамочного теста Mocha

var test = require('selenium-webdriver/testing'); 
test.describe('Test', function() { 
    test.describe('#login()', function() { 
     test.before(function(done){ 
      //driver = create driver object here 
      done(); 
     }); 
     test.after(function(done){ 
      driver.quit(); 
      done(); 
     }); 
     test.it('', function(done){ 
      //code 
      done() 
     }); 
    }); 
}); 

Я хочу вернуть объект драйвера, но, похоже, не работает. Я пробовал return 'Test text', но и ничего не происходит. Можно ли вернуть значение в тестовую завершающую Mocha?

ответ

1

Mocha не предоставляет никакого способа вернуть полезное значение из обратного вызова, переданного в describe. Если то, что вы стремитесь, чтобы ваш driver экземпляра доступен для верхнего describe, то сделать это:

var test = require('selenium-webdriver/testing'); 
test.describe('Test', function() { 
    // This is available to everything inside the callback. 
    var driver; 
    test.before(function(){ 
     driver = // whatever... 
    }); 
    test.after(function(){ 
     driver.quit(); 
    }); 

    test.describe('#login()', function() { 
     test.it('', function(){ 

     }); 
    }); 
}); 

Обратите внимание, что я удалил done функции обратного вызова, потому что на самом деле selenium-webdriver/testing дает обертки вокруг основных функций Мокко. Эти обертки учитывают ControlFlow, созданный Selenium. См. the documentation для примера теста.

Смежные вопросы