Могу ли я узнать, в чем разница между Zombie.js и Жасмином? это обе структуры?В чем разница между Zombie.js и Jasmine?
ответ
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, не является заменой для рамок модульного тестирования, как Жасмин, мокко.
Спасибо, попробуй-пойди! – user5125652