我正在嘗試在我的 Rails 項(xiàng)目中設(shè)置我的第一個(gè) DOM 操作/JQuery Jest 測(cè)試。就目前的基本形式而言,我只是想清除“導(dǎo)入的 Javascript 函數(shù)可以做任何事情”的基本障礙。為此,我在 PledgeFormUpdates.js.test 中有以下代碼:'use strict';import pledge_form_updates from '../../app/javascript/components/PledgeFormUpdates.js';test('Displays GDPR checkbox on EU country selection', () => { // Set up our document body document.body.innerHTML = '<select id="pledge_pledgor_home_country" class="country-select"></select>'// + pledge_form_updates(); const $ = require('jquery'); $(window).trigger('load'); $("#pledge_pledgor_home_country").trigger('change');});在 PledgeFormUpdates.js 中,我有以下內(nèi)容:export default function() { console.log('hello world'); window.addEventListener("load", function() { console.log('mellow curled'); $("#pledge_pledgor_home_country").change(function() { console.log('yellow twirled') }); });};因此,當(dāng)我運(yùn)行測(cè)試時(shí),我希望看到打印輸出,包括“hello world”、“mellow curled”和“yellow twirled”。但實(shí)際上它在第一個(gè)輸出后停止,因此大概窗口load事件實(shí)際上并沒有被觸發(fā)(我通過注釋掉該window.addEventListener...行,然后看到所有三個(gè)打印輸出來確認(rèn))。我在這里做錯(cuò)了什么 - 或者更確切地說,我應(yīng)該如何觸發(fā)加載事件?(我也嘗試過$(window).load();,但這只會(huì)引發(fā) TypeError)
如何在此 Jest 測(cè)試中觸發(fā)窗口加載事件?
泛舟湖上清波郎朗
2021-12-02 16:00:06