如何在 qunit window 中使用 Funcunit 设置元素的 属性(测试 window)

How to set an element's property using Funcunit in qunit window (test window)

我正在使用带有 qunit 的 FuncUnit 来测试应用程序。我想将 <select> 菜单选项的 selected 属性 设置为 true .

jQuery 中,我可以做类似

的事情
$('select#id option:eq(0)').prop('selected', true).change();

实现这一目标。但是,在 funcunit 中,

S('select#id option:eq(0)').prop('selected', true).trigger('change');

selector 找到元素并获取(未设置)prop selected 的值。我想设置元素的属性。

你试过这样的东西吗?

S('select#id option:eq(0)').attr('selected', 'selected').trigger('change');

在 jQuery 中,这会设置标签的任何属性。例如,对于标签 <a href="#">Link</a>,您可以像这样设置属性 href$('a').attr('href', '#new-link');)。这也适用于在旧的 XHTML 样式中添加 selected 属性。不过取消设置 属性 可能很难。

另一个选项可能是使用 click,像这样:

S('select#id option:eq(0)').click();

你甚至不需要触发 change

根据 funcunit 团队的 comment - 用户无法设置选项的 属性,他们只知道执行一些操作,例如单击、拖动等

所以要实现这一点,我们需要做

S.win.$('select#id option:eq(0)').prop('selected', true).trigger('change');

这在测试 window 上运行 jquery。