5

我正在尝试记录一个测试用例,其中 NSDocument 创建并保存文件(然后再次打开+验证内容)。问题是当我记录我的测试用例时,一旦启动 NSSavePanel,XCTestCase 记录就会停止。我试图搜索与保存/打开面板交互的测试用例示例,但我没有任何运气。

谁能告诉我有关 XCTestCases 是否可以与 NSSavePanels 交互的任何细节?代码示例会更好,但文档也会很棒!

4

1 回答 1

-1

是的,它可以。

利用 XCUIApplication

XCUIApplication 有一个最小的 API,但有一些方法需要特别注意:

-launch- 默认情况下,新的XCTestCase模板在 -setup 中包含一行,它实例化一个新的 XCUIApplication 并启动它。当 -launch 被调用时,它将终止任何先前运行的目标应用程序实例。这意味着默认情况下,您添加的每个测试用例都会在每个测试方法之前重新启动您的应用程序。您可以通过使用对仅启动一次的单一 XCUIApplication 的共享引用来避免这种情况,但是除了总体测试时间之外,这样做并没有太大优势。

-launchEnvironment- 允许控制在启动时传递给目标应用程序的自定义环境变量。这可用于(除其他外)设置自定义变量,您的应用可使用该变量来识别它何时作为自动化 UI 测试的目标运行。虽然这可能很有用,但应该明智地使用它。你的 UI 测试不是很有帮助,除非他们正在执行与你的用户相同的代码。

用户界面录制

在 Xcode 7 中,Apple 添加了一个 Record UI Test 按钮,它允许您逐步浏览您的 UI,并在您正在编辑的任何当前测试用例方法中为您记录这些操作。虽然这在理论上听起来很棒,但在实践中,我发现它当前的实现是错误且不可靠的。以下是一些使用它的提示:

慢动作移动- 太快或连续快速执行单击和键盘按下可能会导致 Xcode 跳过其中一些。

预期错误- 在某些情况下,录制根本不起作用。单击NSSavePanel中的不保存按钮将记录一个带有转义 Unicode 字符的字符串,该字符不起作用。很多时候,录制会失败并显示如下一般错误消息。建议?谨慎地使用记录作为“从头开始”编写测试用例的起点。

在此处输入图像描述

于 2017-04-13T15:44:22.300 回答