2017-10-10 3 views
0

J'essaie de maîtriser l'utilisation d'Electron et de Spectron pour ses tests.Test d'entrée de texte pour l'application électronique

Je voudrais écrire dans mon corps contentEditable, puis vérifier que le texte correspond à mon test. Jusqu'à présent, j'ai réussi à écrire un test réussi pour le titre, mais je suis incapable de trouver une solution à celui-ci.

Index.html; FeatureTest.js qui comprend le test de passage pour le titre, et ma tentative pour le test que je voudrais en bas.

const electron = require("electron"); 
var expect = require("chai").expect; 

var Application = require("spectron").Application; 
var assert = require("assert"); 

describe("application launch", function() { 
    this.timeout(10000); 

    beforeEach(function() { 
    this.app = new Application({ 
     path: `${__dirname}/../node_modules/.bin/electron`, 
     args: ["main.js"] 
    }); 
    return this.app.start(); 
    }); 

    afterEach(function() { 
    if (this.app && this.app.isRunning()) { 
     return this.app.stop(); 
    } 
    }); 

    it("title says Hello", function() { 
    return this.app.client 
     .waitUntilWindowLoaded() 
     .getTitle() 
     .then(text => expect(text).to.eq("Hello")); 
    }); 

    it("inputs and then finds the text on the page", function() { 
    return this.app.client 
     .waitUntilWindowLoaded() 
     .elementIdText("test") 
     .keys("Hello World!") 
     .then(text => expect(text).to.eq("Hello World!")); 
    }); 
}); 

main.js;

const {app, BrowserWindow, Menu} = require('electron') 
const path = require('path') 
const url = require('url') 
const fs = require("fs") 

let mainWindow; 

app.on('ready', function() { 

    mainWindow = new BrowserWindow({width: 800, height: 600}) 

    mainWindow.loadURL(url.format({ 
    pathname: path.join(__dirname, 'index.html'), 
    protocol: 'file:', 
    slashes: true 
    })) 

    // Open the DevTools. 
    // mainWindow.webContents.openDevTools() 

    mainWindow.on('closed',() => { 
    app.quit(); 
    }) 

    const mainMenu = Menu.buildFromTemplate(mainMenuTemplate); 

    Menu.setApplicationMenu(mainMenu); 

    if(process.platform == 'darwin'){ 
    mainMenuTemplate.unshift({}); 
    } 

}); 

package.JSON

"devDependencies": { 
    "chai": "^4.1.2", 
    "electron": "^1.7.8", 
    "mocha": "^4.0.1", 
    "spectron": "^3.7.2" 
    } 

Répondre

2

J'ai trouvé la solution à mon problème, il suffit de l'écrire ici pour référence si les autres ont besoin

Le test de travail; Il semble que les fonctions .get [something] placent automatiquement le texte dans une variable de texte que vous pouvez tester.