2017-02-04 21 views

ответ

2

Jasmine - это единая тестовая среда для BDD (разработка с учетом поведения). Для запуска (и обеспечения среды для тестируемого кода) требуется среда выполнения, например NodeJs или браузер, такой как Firefox, Chrome, IE, PhantomJS и т. Д. Жасмин предоставляет инфраструктуру тестирования и утверждения (это describe(), it(), expect()).

Zombie.js - это эмулируемый, безголовый браузер. Это браузер по своему усмотрению плюс API взаимодействия для себя. Это похоже на Selenium/Webdriver. Он использует jsdom под капотом, чтобы обеспечить браузеры API, которые обычно предоставляют. Zombie.js требует инфраструктуры тестирования и утверждения (например, Mocha + should.js или даже Жасмин).


  • С Жасмин вы пишете тесты на модуль или группу из-модулей уровня. Но обычно не на уровне приложения

  • С Zombie.js вы взаимодействуете с веб-сайтом (обслуживаемым сервером) через API взаимодействия.

  • С Jasmine вы делаете мелкозернистые утверждения на выходе или события, созданные для определенного входа - на уровне модуля.

  • С Zombie.js вы взаимодействуете со всем приложением (или веб-сайтом).

  • С помощью Жасмина вы проверяете только часть Javascript.

  • С Zombie.js вы проверяете фронтент + бэкэнд. Хотя вы могли бы отмахиваться и перехватывать взаимодействие с сервером (возможно, я не знаком с ним).

  • С Жасмин вы вызываете метод/функцию, передать параметр и проверить возвращаемое значение и события

  • С Zombie.js загружаемой страницы и заполнить форму и проверить выход

  • с жасмин вам нужно запустить тесты в правильном исполнении envrionment (например, Firefox, Chrome, ...)

  • с Zombie.js вами страниц работает в новой среде выполнения

  • С Жасмин вы можете проверить в браузерах (потребители используют) с их типичной причудой

  • С Zombie.js вы проверить вас приложение в новом окне браузера с новыми причудами


жасмина примером:

// spy on other module to know "method" was called on it 
    spyOn(otherModule, "method"); 

    // create module 
    let module = new Module(otherModule), 
     returnValue; 

    // calls otherModule.method() with the passed value too; always returns 42 
    returnValue = module(31415); 

    // assert result and interaction with other modules 
    expect(returnValue).toBe(42); 
    expect(otherModule.method).toHaveBeenCalledWith(31415); 

Зомби.JS пример:

// create browser 
    const browser = new Browser(); 
    // load page by url 
    browser.visit('/signup', function() { 
     browser 
      // enter form data by name/CSS selectors 
      .fill('email', '[email protected]') 
      .fill('password', 'eat-the-living') 
      // interact, press a button 
      .pressButton('Sign Me Up!', done); 
    }); 

    // actual test for output data 
    browser.assert.text('title', 'Welcome To Brains Depot'); 

Zombie.js, как WebDriver/Selenium, не является заменой для рамок модульного тестирования, как Жасмин, мокко.

+0

Спасибо, попробуй-пойди! – user5125652