2017-04-04 91 views
5

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

任何人都可以指出我的任何细节,如果XCTestCases甚至可以与NSSavePanels交互?代码示例会更好,但文档也会很棒!

回答

-1

是的,它可以。

利用XCUIApplication

XCUIApplication具有最小的API,但有几个方法值得特别注意:

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

-launchEnvironment - 允许控制启动时传递给目标应用程序的自定义环境变量。这可以用于(除其他之外)设置自定义变量,您的应用可以使用该自定义变量来确定它何时作为自动化UI测试的目标运行。虽然这可能有用,但应该谨慎使用。除非你的用户使用相同的代码,否则你的UI测试不是很有用。

UI记录

和Xcode 7,苹果增加了一个记录UI测试按钮,让您逐步执行UI,并在任何当前测试用例的方法您正在编辑记录你的行动。虽然这在理论上听起来很棒,但实际上我发现它目前的实施方法很麻烦且不可靠。以下是使用它的一些提示:

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

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

enter image description here

+0

谢谢,但这实际上并没有回答任何与一个XCTestCase与系统交互NSSavePanel? – Kyle