我正在尝试记录一个测试用例,其中NSDocument创建并保存文件(然后打开+再次验证内容)。问题是当我记录我的测试用例时,一旦启动NSSavePanel,XCTestCase记录就会停止。我试图搜索与保存/打开面板交互的测试用例示例,但我没有运气。
有人能指出我有关XCTestCases是否甚至可以与NSSavePanel交互的任何细节吗?代码示例会更好,但文档也会很棒!
答案 0 :(得分:-1)
是的,可以。
利用XCUIApplication
XCUIApplication有一个最小的API,但有一些方法需要特别注意:
-launch
- 默认情况下,新的 XCTestCase 模板在-setup中包含一行,用于实例化新的XCUIApplication并启动它。当调用-launch时,它将终止任何以前运行的目标应用程序实例。这意味着默认情况下,您添加的每个测试用例都会在每个测试方法之前重新启动您的应用。你可以通过使用一个单独的XCUIApplication的共享引用来避免这种情况,你只需要启动一次,但是除了整体测试时间之外,没有太大的优势。
-launchEnvironment
- 允许控制在启动时传递给目标应用的自定义环境变量。这可以用于(除其他事项外)设置自定义变量,您的应用可以用它来识别它作为自动UI测试的目标运行的时间。虽然这可能有用,但应该谨慎使用。除非用户使用相同的代码,否则您的UI测试不是很有帮助。
用户界面录制
使用Xcode 7,Apple添加了一个Record UI Test按钮,允许您逐步浏览UI,并在您正在编辑的任何当前测试用例方法中为您记录这些操作。虽然这在理论上听起来很棒,但在实践中我发现它当前的实现是错误的和不可靠的。以下是使用它的一些提示:
慢动作 - 快速或连续快速执行点击和键盘按键可能会导致其中一些被Xcode跳过。
期待错误 - 在某些情况下,录制将无法正常工作。单击 NSSavePanel 中的“不保存”按钮将记录带有转义的Unicode字符的字符串,该字符串不起作用。很多时候,录制将失败,并显示如下所示的常规错误消息。建议?谨慎使用录音作为从头开始编写测试用例的起点。