#node.js #jestjs #electron
#node.js #jestjs #электрон
Вопрос:
Я хочу провести простой тест шутки, чтобы проверить, devTools
было ли оставлено включенным для приложения Electron. У меня есть эта функция в main.js
:
function createWindow () {
win = new BrowserWindow({
width: 1024,
height: 728,
backgroundColor: '#000000',
webPreferences: {
nodeIntegration: true,
devTools: false
},
frame: false
});
Я просто хочу сделать тест, чтобы увидеть, является ли DevTools false. Может ли jest просто прочитать эту конкретную переменную?
Ответ №1:
Да, вы можете получить доступ к параметрам, которые были переданы конструктору BrowserWindow, таким образом:
win = new BrowserWindow( {
webPreferences: {
nodeIntegration: true,
devTools: true
},
});
console.log( win.webContents.browserWindowOptions.webPreferences.devTools );
// will print true
Обратите внимание, что вы можете получить значение, только если оно действительно отображается в параметрах вызова конструктора, в противном случае это undefined
.
Далее обратите внимание, что это недокументировано: в электронных документах не упоминается webContents.browserWindowOptions
. Я пробовал это с помощью Electron 10.1.0.
Комментарии:
1. Спасибо! Консоль. журнал работает, но я немного запутался в настройке
main.test.js
. Я только начинаю с Jest, вот моя попытка сделать main.test.js .2. В этом коде есть несколько небольших проблем.
createwindow
должно бытьcreateWindow
и проверьтеexpect
синтаксис еще раз, это не совсем правильно. Кроме того, вы проверяете возвращаемое значение функции, когда у нее нет инструкции return.3. Да, я только что понял это после того, как скопировал и вставил все… но использовали ли вы
module.exports = createWindow()
? Это выдает,Error: Cannot create BrowserWindow before app is ready
когда я пытаюсь запустить приложение сnpm start
.4. Мой ответ касается только чтения настроек BrowserWindow в Electron. К сожалению, я не знаю, как заставить ваши тесты работать! Мне кажется, это приводит к более широкому, более общему вопросу: как заставить Jest запускать приложение Electron с полным пользовательским интерфейсом.
Ответ №2:
Недавно я узнал о Spectron, и это позволяет вам тестировать приложения Electron. В их документации показано, что они используют Mocha, но я почти уверен, что вы можете заставить его работать с Jest. Мне больше не нужно проверять, включен ли DevTools в моем приложении Electron, но я публикую здесь для всех, кто хочет сделать что-то подобное.