【发布时间】:2020-02-20 16:17:55
【问题描述】:
在这里开玩笑的新手。我正在研究 DOM-manipulation Jest doc here,最终在我们的 Rails 应用程序中测试 JQuery 更改触发器,但是在尝试让 JQuery 识别我的测试 html 中的特定元素时,在早期的障碍中失败了。所以我有一个PledgeFormUpdates.test.js 文件来模拟表单的一部分,这是我的第一个非玩具 Jest 测试,它看起来像这样:
'use strict';
import pledge_form_updates from '../../app/javascript/components/PledgeFormUpdates.js';
test('Displays GDPR checkbox on EU country selection', () => {
pledge_form_updates();
// Set up our document body
document.body.innerHTML =
'<select id="pledge_pledgor_home_country" class="country-select">' +
' <option value="Brazil" selected>Brazil</option>' +
' <option value="Germany">Germany</option>' +
'</select>' +
'<div id="js-gdpr-input" class="hidden">' +
' <div class="form-group">' +
' <div class="field-group" data-children-count="1">' +
' <input name="pledge[receive_comms]" disabled="disabled" type="hidden" value="0">' +
' <input type="checkbox" value="1" name="pledge[receive_comms]" id="pledge_receive_comms">' +
' <label for="pledge_receive_comms" class="standard-label -checkbox">' +
" I'd like to be kept in the loop via the Founders Pledge email digest." +
' </label>' +
' </div>' +
' </div>' +
'</div>'
const $ = require('jquery');
var country_select = $('#pledge_pledgor_home_country')
console.log(country_select[0])
});
目前我对此没有任何期望(除非有人要求,否则我不会浪费空间来描述它正在测试的 JS 文件,因为目前我什至在我到达那一步之前就遇到了意想不到的行为)。我希望最后一行打印出这样的内容:
<select id="pledge_pledgor_home_country">
<option value="Brazil" selected="">Brazil</option>
<option value="Germany">Germany</option>
</select>
(...或者只是 undefined 如果它什么也没找到 - 我通过将 country_select 设置为 $('#wibble') 来确认)
但是我得到了一些我不明白的东西:
HTMLSelectElement {}
这个对象是什么,更重要的是,我如何访问我实际定位的元素?
【问题讨论】:
标签: jquery html ruby-on-rails jestjs