我正在尝试使用数据提供程序为多个输入运行我的jasmine测试。为此,我尝试使用以下链接使用jasmine-data-provider包:
http://blog.jphpsf.com/2012/08/30/drying-up-your-javascript-jasmine-tests
但是当我运行测试时,我收到一个我无法解决的错误。
我的测试:
using("multiple inputs",["a","b"], function(input) {
it("should check the header for: ", function () {
mainPage.screen(input, 'cdcd');
expect(mainPage.mainHeader.getText()).toEqual(mainData.mainHeaderText);
});
});
我收到错误:
TypeError: Cannot assign to read only property '0' of string 'multiple inputs'
答案 0 :(得分:1)
这里有一个问题:你提到的blog只为jasmine v1.2做了,但是jasmine-data-provider包用于更新版本的jasmine。 但,语法更改!
如npm模块页面上的示例中所述,using
函数期望输入数组作为第一个参数,而不是博客文章中提到的那个。
这解释了为什么会出现以下错误:
TypeError: Cannot assign to read only property '0' of string 'multiple inputs'
以下是应该有效的示例代码段:
var using = require('jasmine-data-provider');
...
using(["a","b"], function(input) {
it("should check the header for: ", function () {
mainPage.screen(input, 'cdcd');
expect(mainPage.mainHeader.getText()).toEqual(mainData.mainHeaderText);
});
});