Важно! Иметь сценарии использования, чтобы тестировать методически.
Хаотичное тестирование - метод свободного поиска.
По уровню:
Общий подход: Выполнить код и проверить результат его работы
describe('Array', function() {
describe('#indexOf()', function() {
it('should return -1 when the value is not present', function() {
[1,2,3].indexOf(5).should.equal(-1);
[1,2,3].indexOf(0).should.equal(-1);
});
});
});
describe('Connection', function() {
var db = new Connection,
tobi = new User('tobi');
beforeEach(function(done) {
db.clear((err) => {
return (err) ? done(err): db.save([tobi, loki, jane], done);
});
});
describe('#find()', () => {
it('respond with matching records', (done) => {
db.find({type: 'User'}, (err, res) => {
if (err) return done(err);
res.should.have.length(3);
done();
});
});
});
});
Вспомогательные объекты/методы
test stub (заглушка), используется для получения данных из внешней зависимости, подменяя её.
test spy (тестовый шпион), используется для тестов взаимодействия, основной функцией является запись данных и вызовов, поступающих из тестируемого объекта для последующей проверки
mock object (мок-объект), очень похож на тестовый шпион, однако не записывает последовательность вызовов с переданными параметрами для последующей проверки
var webdriverio = require('webdriverio');
var options = { desiredCapabilities: { browserName: 'chrome' } };
var client = webdriverio.remote(options);
client
.init()
.url('https://duckduckgo.com/')
.setValue('#search_form_input_homepage', 'WebdriverIO')
.click('#search_button_homepage')
.getTitle().then(function(title) {
console.log('Title is: ' + title);
// outputs:
// "Title is: WebdriverIO (Software) at DuckDuckGo"
})
.end();