我想测试我的 Electron 应用程序,但我觉得这比我预期的要难!
从我环顾四周时看到的情况来看,使用打开文件对话框似乎是一件简单的事情!
有可能吗,还是我可以以某种方式模拟这种行为?
我的应用程序将选定的文件添加到文件列表中,并在网格中显示一些结果。如果我无法打开文件,我将无法获得网格并且无法测试它是否按预期运行。
如果我不能使用文件对话框,我应该如何解决这个问题?
这是我的测试设置:
import { Application } from "spectron";
import { expect } from "chai";
describe("Application", function() {
this.timeout(10000);
let app: Application;
let browser: any;
before(async () => {
app = new Application({
path: electronPath,
args: [appPath],
});
await app.start();
browser = app.client;
await browser.waitUntilWindowLoaded();
});
after(() => {
await app.stop();
});
it("Starts application", async () => {
const count = await browser.getWindowCount();
expect(count).to.equal(1);
});
it("should add files", async function() {
await browser.click("#block-container > div.button-row > div:nth-child(1) > button:nth-child(1)");
// ???
});
});
这是 addFiles 方法:
public addFiles() {
const selectedFiles: string[] = this.electronService.remote.dialog.showOpenDialogSync({
title: "Add files",
properties: ["openFile", "multiSelections"]
});
...
}