2017-10-10 9 views
0

私は、ElectronおよびSpectronを使用してテストすることに慣れさせようとしています。電子アプリケーションのテキスト入力をテストする

私はcontentEditableである私の体に書きたいと思って、私のテストでテキストが一致することを確認します。これまではタイトルのテストを成功させることができましたが、解決策を見つけることができません。

index.html;

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="UTF-8"> 
    <title>Hello</title> 
    </head> 
    <body id = "test" contentEditable = true> 
    </body> 
</html> 

featureTest.jsには、タイトルの合格テストとテストの試行が含まれています。

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" 
    } 

答えて

2

私は他の人がそれ

作業テストが必要な場合は、単に参考のためにここでそれを書いて、私の問題への解決策を見つけました。

it("should enter and show text", function(){ 
    return this.app.client 
     .waitUntilWindowLoaded() 
     .click('#test') 
     .keys('Hello') 
     .getText('#test') 
     .then(text => expect(text).to.eq('Hello')) 

.get [something]関数はテキストを自動的にテストできるテキスト変数に置きます。

関連する問題