首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zombie.js和Jasmine有什么不同?

Zombie.js和Jasmine有什么不同?
EN

Stack Overflow用户
提问于 2017-02-05 03:09:21
回答 1查看 522关注 0票数 0

我可以知道Zombie.js和Jasmine有什么区别吗?它们都是框架吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-06 14:58:11

是一个用于行为驱动开发的单元测试框架。它需要像NodeJs这样的执行环境或火狐、Chrome、IE、PhantomJS等浏览器才能运行(并为测试代码提供环境)。Jasmine提供测试执行和断言基础设施(即describe()it()expect())。

是一个模拟的、无头浏览器。它是一个独立的浏览器,外加一个自己的交互API。它就像Selenium/Webdriver。它在幕后使用jsdom来提供浏览器通常提供的API。Zombie.js需要测试执行和断言基础设施(如Mocha + should.js甚至Jasmine)。

使用

  • ,您可以在模块或模块组级别上编写测试。但通常不是在应用程序级别。使用Zombie.js,您可以通过交互应用程序接口与网站(由服务器提供服务)进行交互。使用
  • ,您可以在输出或为特定输入创建的事件上进行细粒度断言--在模块级。使用
  • ,您可以与整个应用程序进行交互(或者使用

Jasmine,您只测试Javascript部分。

  • 使用Zombie.js,您可以测试前端+后端。)
  • 使用Jasmine你可以调用一个方法/函数,传递一个参数并测试返回值和事件
  • 使用Zombie.js你加载一个页面,填写一个表单并测试输出
  • 你需要在适当的执行环境中运行测试(如火狐,Chrome,...)
  • 与Zombie.js您的页面运行在一个新的执行environment
  • With Jasmine您可以测试浏览器(消费者使用)与其典型的怪癖
  • 与Zombie.js您测试您的应用程序在新的浏览器与新的怪癖

Jasmine示例:

代码语言:javascript
复制
    // 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);

Zombie.js示例:

代码语言:javascript
复制
    // create browser
    const browser = new Browser();
    // load page by url
    browser.visit('/signup', function() {
        browser
            // enter form data by name/CSS selectors
            .fill('email', 'zombie@underworld.dead')
            .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一样,不能替代像Jasmine,Mocha这样的单元测试框架。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42044444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档