Electron 使用Spectron电子测试中的“添加文件”对话框

Electron 使用Spectron电子测试中的“添加文件”对话框,electron,spectron,Electron,Spectron,我想测试我的电子应用程序,但我觉得这比我预期的要难 只是一件简单的事情,因为使用“打开文件”对话框似乎是不可能的,这是我环顾四周时看到的 这是可能的,还是我可以以某种方式嘲笑这种行为 我的应用程序将所选文件添加到文件列表中,并在网格中显示一些结果。如果我无法打开文件,我将无法获得网格,也无法测试它是否按预期运行 如果我不能使用文件对话框,我应该如何处理这个问题 这是我的测试设置: import { Application } from "spectron"; import { expect }

我想测试我的电子应用程序,但我觉得这比我预期的要难

只是一件简单的事情,因为使用“打开文件”对话框似乎是不可能的,这是我环顾四周时看到的

这是可能的,还是我可以以某种方式嘲笑这种行为

我的应用程序将所选文件添加到文件列表中,并在网格中显示一些结果。如果我无法打开文件,我将无法获得网格,也无法测试它是否按预期运行

如果我不能使用文件对话框,我应该如何处理这个问题

这是我的测试设置:

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"]
  });

  ...
}