mocha.js - Protractor 中有数据提供者概念吗?

标签 mocha.js protractor

我想在基于 Protractor 的测试中使用数据提供程序来对多组数据运行相同的测试。我期待它的工作方式与 testng 数据提供程序非常相似。

最佳答案

我认为这是您与 Protractor 一起使用的特定测试框架的责任(例如 Jasmine、Mocha 等)。

据我所知,这些框架不支持参数化测试。但在我们的测试中,我们是这样做的,并且对我们来说非常有效:

    var testCases = [
        { param1: 'testcase1Param1', param2: 'testCase1Param2'  },
        { param1: 'testcase2Param1', param2: 'testCase2Param2'  },
    ];

    /*jshint -W083 */ //Disable warning for function created inside loop
    //this is parametrized test and it's better readable this way.
    testCases.forEach(function (testCase){
        describe('for test case: param1" ' + testCase.param1 +
                ' and param2: "' + testCase.param2 + '"', function(){
           //do your testing
        }
    }

编辑:

评论中有关于如何将参数保存在单独文件中的问题。这归结为测试套件配置及其处理模块化的方式。到目前为止,我看到了这些方法:

  • Jasmine 套件基于一个主要的 HTML 文件。在这种情况下,您可以通过 <script> 在测试类之前包含您的测试用例文件。 HTML 标签。看这里:http://jasmine.github.io/2.0/introduction.html#section-Standalone_Distribution
  • 基于 Karma 的测试套件和用于处理依赖项的 RequireJs。使用此配置,您可以通过标准 RequireJs 机制导入文件。这将涉及一些关于 Karma 的研究。和 RequireJs .顺便说一句,当您使用 Protractor 时,您正在测试 AngularJs 应用程序和 Angular 团队制作的 Karma ist 测试工具。

Karma 可以与各种测试框架和模块系统集成。因此,如果您想要一些其他风格的处理模块(例如 CommonJs),您可以使用 Karma 轻松完成。

关于mocha.js - Protractor 中有数据提供者概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26056016/

相关文章:

javascript - 测试 promise 导致未定义的值

unit-testing - 在 Node.js 的单元测试中 stub 依赖项

javascript - 无法调用未定义的方法 'ui'

javascript - 如何使用 Protractor 执行多个同时请求?

java - 在 Windows 8.1 上运行 'webdriver-manager start' 时出错

mocha.js - 我可以在使用 Spectron 测试时调试我的 Electron 应用程序吗?

javascript - mocha - 检索 promise 测试的结果

javascript - 输入电子邮件地址后,我需要司机按标签两次

angular - Ace 编辑器 + Angular 2 => Protractor 无法同步

node.js - 如何使用 Protractor 以非阻塞方式执行shell脚本?