Module selenium-webdriver/testing

code »

Provides wrappers around the following global functions from Mocha's BDD interface:

  • after
  • afterEach
  • before
  • beforeEach
  • it
  • it.only
  • it.skip
  • xit

The provided wrappers leverage the webdriver.promise.ControlFlow to simplify writing asynchronous tests:


 var By = require('selenium-webdriver').By,
     until = require('selenium-webdriver').until,
     firefox = require('selenium-webdriver/firefox'),
     test = require('selenium-webdriver/testing');

 test.describe('Google Search', function() {
   var driver;

   test.before(function() {
     driver = new firefox.Driver();
   });

   test.after(function() {
     driver.quit();
   });

   test.it('should append query to title', function() {
     driver.get('http://www.google.com/ncr');
     driver.findElement(By.name('q')).sendKeys('webdriver');
     driver.findElement(By.name('btnG')).click();
     driver.wait(until.titleIs('webdriver - Google Search'), 1000);
   });
 });
 

You may conditionally suppress a test function using the exported "ignore" function. If the provided predicate returns true, the attached test case will be skipped:


   test.ignore(maybe()).it('is flaky', function() {
     if (Math.random() < 0.5) throw Error();
   });

   function maybe() { return Math.random() < 0.5; }
 
Show:

Functions

Register a function to call after the current suite finishes.

Parameters
fn: function()
.

Register a function to call after each test in a suite.

Parameters
fn: function()
.

Register a function to call before the current suite starts.

Parameters
fn: function()
.

Register a function to call before each test in a suite.

Parameters
fn: function()
.
code »describe ( name, fn )

Registers a new test suite.

Parameters
name: string
The suite name.
fn: function()=
The suite function, or undefined to define a pending test suite.
code »ignore ( predicateFn )!Object

Ignores the test chained to this function if the provided predicate returns true.

Parameters
predicateFn: function(): boolean
A predicate to call to determine if the test should be suppressed. This function MUST be synchronous.
Returns
An object with wrapped versions of #it() and #describe() that ignore tests as indicated by the predicate.
code »iit ( name, fn )

An alias for #it() that flags the test as the only one that should be run within the current suite.

Parameters
name: string
The test name.
fn: function()=
The test function, or undefined to define a pending test case.
code »it ( name, fn )

Add a test to the current suite.

Parameters
name: string
The test name.
fn: function()=
The test function, or undefined to define a pending test case.
code »xdescribe ( name, fn )

Defines a suppressed test suite.

Parameters
name: string
The suite name.
fn: function()=
The suite function, or undefined to define a pending test suite.
code »xit ( name, fn )

Adds a test to the current suite while suppressing it so it is not run.

Parameters
name: string
The test name.
fn: function()=
The test function, or undefined to define a pending test case.