Мокко и Зомби - PullRequest
       30

Мокко и Зомби

20 голосов
/ 19 февраля 2012

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

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

Спасибо!

Ответы [ 4 ]

36 голосов
/ 25 февраля 2012

Если вы уже установили 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. Ознакомьтесь с документацией Мокко для получения полной информации.

7 голосов
/ 15 января 2013

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

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

1 голос
/ 05 июня 2014

если вы хотите использовать cucumber-js для ваших приемочных тестов и mocha для ваших "юнит-тестов" для страницы, вы можете использовать cuked-zombie (извините за рекламу).

Установите его, как описано в readme на github, но поместите конфигурацию вашего мира в файл с именем world-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;
      });
0 голосов
/ 29 мая 2013

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

...