草庐IT

unit-testing - 在 Swift 中测试断言

我正在为具有断言的方法编写单元测试。Swift语言指南建议对“无效条件”使用断言:Assertionscauseyourapptoterminateandarenotasubstitutefordesigningyourcodeinsuchawaythatinvalidconditionsareunlikelytoarise.Nonetheless,insituationswhereinvalidconditionsarepossible,anassertionisaneffectivewaytoensurethatsuchconditionsarehighlightedandnoti

ios - 在 XCTest UI 测试中复制拉动刷新

我正在尝试使用Xcode7(beta3)中的新XcodeUI测试框架在UITableView上复制拉动刷新我目前的方法是从表格拖动到我能找到的表格下方的任何元素。当表格下方有一个固定项(如UIToolbar或UITabBar)时,此方法有效我不想依赖UITabBar或UIToolbar但我想不出不使用XCUIElement中的方法来执行下拉刷新/拖动操作的方法。funcpressForDuration(duration:NSTimeInterval,thenDragToElementotherElement:XCUIElement)但是当我没有工具栏/标签栏并尝试使用单元格进行拖动时它

ios - 在 XCTest UI 测试中复制拉动刷新

我正在尝试使用Xcode7(beta3)中的新XcodeUI测试框架在UITableView上复制拉动刷新我目前的方法是从表格拖动到我能找到的表格下方的任何元素。当表格下方有一个固定项(如UIToolbar或UITabBar)时,此方法有效我不想依赖UITabBar或UIToolbar但我想不出不使用XCUIElement中的方法来执行下拉刷新/拖动操作的方法。funcpressForDuration(duration:NSTimeInterval,thenDragToElementotherElement:XCUIElement)但是当我没有工具栏/标签栏并尝试使用单元格进行拖动时它

ios - Swift 中的单元测试 fatalError

如何在Swift中对fatalError代码路径进行单元测试?例如,我有以下swift代码funcdivide(x:Float,byy:Float)->Float{guardy!=0else{fatalError("Zerodivision")}returnx/y}我想在y=0时对案例进行单元测试。请注意,我想使用fatalError而不是任何其他断言函数。 最佳答案 想法是用您自己的函数替换内置的fatalError函数,该函数在单元测试执行期间被替换,以便您在其中运行单元测试断言。然而,棘手的部分是fatalError是@nor

ios - Swift 中的单元测试 fatalError

如何在Swift中对fatalError代码路径进行单元测试?例如,我有以下swift代码funcdivide(x:Float,byy:Float)->Float{guardy!=0else{fatalError("Zerodivision")}returnx/y}我想在y=0时对案例进行单元测试。请注意,我想使用fatalError而不是任何其他断言函数。 最佳答案 想法是用您自己的函数替换内置的fatalError函数,该函数在单元测试执行期间被替换,以便您在其中运行单元测试断言。然而,棘手的部分是fatalError是@nor

在独立 View 上进行 iOS UI 测试

我正在尝试将UI测试合并到我的iOS项目中,但一直阻碍我的一件事是,您编写的所有测试似乎都必须从应用程序的开头开始,并逐步完成.例如,如果我想测试登录屏幕后面的View,我的测试必须首先在登录屏幕上运行,输入用户名/密码,单击登录,然后转到我要测试的View。理想情况下,登录View和下一个View的测试将完全隔离。有没有办法做到这一点,还是我完全错过了UI测试背后的哲学? 最佳答案 绝对!您需要的是一个干净的应用程序环境,您可以在其中运行测试-一张白纸。所有应用程序都有一个应用程序委托(delegate),它设置应用程序的初始状态

在独立 View 上进行 iOS UI 测试

我正在尝试将UI测试合并到我的iOS项目中,但一直阻碍我的一件事是,您编写的所有测试似乎都必须从应用程序的开头开始,并逐步完成.例如,如果我想测试登录屏幕后面的View,我的测试必须首先在登录屏幕上运行,输入用户名/密码,单击登录,然后转到我要测试的View。理想情况下,登录View和下一个View的测试将完全隔离。有没有办法做到这一点,还是我完全错过了UI测试背后的哲学? 最佳答案 绝对!您需要的是一个干净的应用程序环境,您可以在其中运行测试-一张白纸。所有应用程序都有一个应用程序委托(delegate),它设置应用程序的初始状态

swift - 如何从命令行为 swift 应用程序运行 XCTest?

如果可能的话,我想从命令行使用XCTest来测试一些Swift示例。importXCTestclassLeapTest:XCTestCase{functestVanillaLeapYear(){letyear=Year(calendarYear:1996)XCTAssertTrue(year.isLeapYear);}}我喜欢从命令行运行它。我已经将Xcode设置为在测试版中使用开发人员工具:sudoxcode-select-s/Applications/Xcode6-Beta.app/Contents/Developer/如果我天真地尝试运行它,它会像这样$xcrunswiftLea

swift - 如何从命令行为 swift 应用程序运行 XCTest?

如果可能的话,我想从命令行使用XCTest来测试一些Swift示例。importXCTestclassLeapTest:XCTestCase{functestVanillaLeapYear(){letyear=Year(calendarYear:1996)XCTAssertTrue(year.isLeapYear);}}我喜欢从命令行运行它。我已经将Xcode设置为在测试版中使用开发人员工具:sudoxcode-select-s/Applications/Xcode6-Beta.app/Contents/Developer/如果我天真地尝试运行它,它会像这样$xcrunswiftLea

ios - 如何在 Xcode 的 iOS UI 测试中选择一个选择器 View 项?

我有一个包含几个项目的选择器View:“红色”、“绿色”、“黄色”、“黑色”。在我的UI测试中,我需要从中选择一个特定的项目“绿色”。我正在使用Xcode7引入的XCTestUI测试API。到目前为止我设法做的是在单元测试中向上滑动整个选择器View。这并不理想,因为它总是将选择器View更改为底部项目(向上滑动时)。letapp=XCUIApplication()app.launch()app.pickers.elementAtIndex(0).swipeUp()XCTAssert(app.staticTexts["Selected:Black"].exists)另一种非常相似的更改