2012-02-19 4 views
20

Я начинаю проект nodejs и хотел бы сделать BDD с Mocha и Zombiejs. К сожалению, я новичок в каждом слове в этом предложении. Я могу заставить Mocha и Zombiejs работать отлично, но я не могу интегрировать их в два - возможно ли использовать Mocha для запуска тестов Zombiejs, и если да, то как это будет выглядеть?Mocha and ZombieJS

Просто ищите «hello world», чтобы начать меня, но учебник/пример будет еще лучше.

Спасибо!

+0

Был ли мой ответ, что вы имели в виду? – Industrial

+0

Да, это то, что я хотел. Благодаря! – Joel

ответ

36

Предполагая, что вы уже установили mocha, zombie и expect.js в соответствии с инструкциями, это должно работать для вас:

// Put below in a file in your *test* folder, ie: test/sampletest.js: 

var expect = require('expect.js'), 
Browser = require('zombie'), 
browser = new Browser(); 

describe('Loads pages', function(){ 

    it('Google.com', function(done){ 

     browser.visit("http://www.google.com", function() { 
      expect(browser.text("title")).to.equal('Google'); 
      done(); 
     }); 
    }); 

}); 

Тогда вы должны быть в состоянии выполнить команду mocha из папки приложения корня:

# mocha -R spec 

    Loads pages 
    ✓ Google.com (873ms) 


    ✔ 1 tests complete (876ms) 

Примечание: Если ваши тесты продолжаются сбой из-за таймаутов, это помогает увеличить тайм-аут mocha используя бит -t. Ознакомьтесь с документацией mocha для получения полной информации.

+0

помните, что zombiejs терпит неудачу, если используется с nodejs 0.10.xx из-за этой проблемы. Https://github.com/assaf/zombie/issues/487 cheers –

+4

Имейте в виду, что проблема кажется исправленной! –

7

Я написал длинный ответ на этот вопрос, объяснив важные вопросы о асинхронных тестах, передовом опыте ('before()', 'after()', TDD, ...) и проиллюстрирован примером реального мира.

http://redotheweb.com/2013/01/15/functional-testing-for-nodejs-using-mocha-and-zombie-js.html

+1

Вы когда-нибудь двигали этот пост? – Alex

+0

Ах, я тоже хотел прочитать это! Не думайте, что вы перенесли его в Постхавен, не так ли? –

+0

Tee hee, зомби-нить. Статья перемещена: http://redotheweb.com/2013/01/15/functional-testing-for-nodejs-using-mocha-and-zombie-js.html –

-1

Если вы используете Microsoft Visual Studio, вы можете захотеть взглянуть на Роб Эштон Zombify. Все приемлемо интегрировано, поэтому вы можете начать писать свои тестовые примеры в JavaScript или CoffeeScript. Кстати, обучение CoffeeScript займет у вас как час, и это стоит каждую минуту.

1

Если вы хотите использовать огурец-js для ваших приемочных испытаний и мокко для ваших «единичных» тестов для страницы, вы можете использовать cuked-zombie (извините за рекламу).

Установите его, как описаны в риом на GitHub, но разместить свою мировую конфигурацию в файле с именем всемирно-config.js

`/* globals __dirname */ 
var os = require('os'); 
var path = require('path'); 

module.exports = { 
    cli: null, 
    domain: 'addorange-macbook': 'my-testing-domain.com', 
    debug: false 
}; 

Затем используйте мокко с зомби в модульных тестах, как это:

var chai = require('chai'), expect = chai.expect; 
var cukedZombie = require('cuked-zombie'); 

describe('Apopintments', function() { 

    describe('ArrangeFormModel', function() { 
    before(function(done) { // execute once 
     var that = this; 

     cukedZombie.infectWorld(this, require('../world-config')); 

     this.world = new this.World(done); 

     // this inherits the whole world api to your test 
     _.merge(this, this.world); 
    }); 

    describe("display", function() { 

     before(function(done) { // executed once before all tests are run in the discribe display block 
     var test = this; 
     this.browser.authenticate().basic('maxmustermann', 'Ux394Ki'); 

     this.visitPage('/someurl', function() { 
      test.helper = function() { 

      }; 

      done(); 
     }); 
     }); 

     it("something on the /someurl page is returned", function() { 
     expect(this.browser.html()).not.to.be.empty; 
     });