我试图将jQuery选择器控件添加到phantomJS无头浏览器中以进行测试。

可能吗?

至此,我们已经覆盖了检查以查看控件是否存在,并且没有进行任何操纵值和测试onChange事件的尝试。

我要运行的测试是这样的:

//arrange
//OnChange results in values being stored in cookies
$('#TestControl').val(cookieValue).trigger('change');

//act
var result = $.cookie(cookieName);

//assert
expect(result).toBe(cookieValue);


问题是我不知道如何实际创建$('#TestControl')

最佳答案

要在phantomJS / jasmine中创建DOM元素,可以执行以下操作:

var TestControl = $('<input id="TestControl"/>');
$(document.body).append(TestControl);


但是,最好在html中定义标记。 jasmine-jquery的fixture模块允许您加载要由测试使用的HTML内容。总体工作流程如下:

在myfixture.html文件中:

<div id="my-fixture"><input id="TestControl"/></div>


测试内:

loadFixtures('myfixture.html')
$('#TestControl').val(cookieValue).trigger('change')
expect($('#my-fixture')).to...

09-25 16:24