没有通过变量的Qunit测试

我想做一个功能测试,为窗体做一些非常简单的验证。 但是我不知道如何使用qunit而不将vars传递给函数。 这里是我说的没有通过变量的Qunit测试

function validateForm(){ 

var name = $('#name').val();

var submit = true;

//do some validation

//if submit true

form.submit();

}

所有qunit的例子是我的文档来看一个例子做这样的事情

ok(validateForm('hello'),'Hello is a valid name'); 

我应该只是修改我的功能还是有办法与这样的设置一起工作。

// EDIT

我选择追求现在正在建立高于当前一个简单地解析形式输入,然后将它们发送作为瓦尔到validateForm()功能的另一功能选项

回答:

我最终做的是以一种允许我在测试中通过变量的方式修改函数。

之前的代码会做这样的事

 function validateForm(){ 

var value1 = $('#someinput').val();

//Do some validation based on these vars

$('#someform').submit();

}

现在,当按钮被按下它去分析给ARGS出来我还添加了一个“测试” ARG所以形式不是另一个函数提交在测试过程中提交。

 function parseFormArgs(){ 

var value1 = $('#someinput').val();

var value2 = $('#otherinput').val();

var test = false;

validateForm(value1,value2,test);

}

function validateForm(value1,value2,test){

var submit = true;

//Do some validation

if(test != true && submit){

$('#someform').submit();

}

return submit;

}

然后我qunit看起来像这样

 var testFn = true; 

test('validateForm()', function(){

equals(validateForm('ExampleVal1','ExampleVal2',testFn), false, 'Such and Such Values should not validate');

...

...

});

回答:

qUnit是否可以访问表单/ UI?我只使用JsTestDriver进行JavaScript测试,但在那里您只测试内部对象逻辑

因此,不是试图读取表单(我不知道您是否可以这样做),您可以做的是获取从表单中的电流值,并通过那些验证功能,如:

function validate(options){ 

return options.foo === "bar"

}

所以,你可以写不喜欢的东西

var options = {foo:"bar"} 

var valid = validate(options)

equal(true, valid)

一qUnit测试

这样的事情?然后,一旦您对该功能感到满意,您可以将其添加到UI中。

以上是 没有通过变量的Qunit测试 的全部内容, 来源链接: utcz.com/qa/266089.html

回到顶部