草庐IT

ios - 使用 XCTestCase 进行静态库测试

我正在创建ISession类的对象,它给我单例实例,当对象被分配和初始化时,它从plist文件中获取值,我在[[NSBundlemainBundle]pathForResource:@"Manifest"ofType:@"plist"]上得到nil,因此对象创建失败。有人可以提供解决方案,以便我可以在静态库而不是项目中编写测试用例。谢谢。 最佳答案 在代码中创建Mock对象,代表来自plist的数据,并在测试文件的setUp方法中实例化它们静态库并不意味着拥有资源。 关于ios-使用XC

ios - XCTest如何知道方法内部的方法是否被调用

如何使用Xcode7在XCTest框架中验证方法内的方法是否已被调用。我想弄清楚的示例方法是-(void)setupMapAria{//somecode[selfsetUpLocation:[UserDetailscurrentLocation]];//somecode.}这里如何检查或编写单元测试用例是否调用了setUpLocation。(注意此方法不返回任何内容)。 最佳答案 我猜您不想测试setUpLocation是否已被调用。如果可能,更好的测试是在给定特定位置时测试该方法的所需结果。在这种情况下,挑战在于用测试输入代替[U

ios - 单元测试自定义 UITableViewCell?

是否可以只初始化和加载自定义单元和测试socket?我的ViewController有TableView和单独的dataSource(它是自定义数据源的子类)。所以使用所有这些创建单元格有点棘手。自定义单元格只有几个标签和用于从对象更新它们的配置方法,因此如果加载,测试将很容易。 最佳答案 可以为自定义UITableViewCell编写单元测试,以测试其socket和其中包含的任何其他功能。以下示例演示了这一点:classTestItemTableViewCell:XCTestCase{vartableView:UITableVie

ios - 可以从 XCTest 中的其他测试用例中调用测试用例

我正在构建一组XCTestCase方法来围绕我的核心数据模型运行代码。我计划从其他测试方法中调用一些测试方法,这样我就可以看到不同的数据组合,同时将代码保持在最低限度。我无法想象为什么这行不通,但我想知道这个世界是怎么想的,这是否被认为是一种好的做法。这是它的样子:@interfacesessionTests:XCTestCase@property(strong)Model*model;@end-(void)setUp{[supersetUp];_model=[[Modelalloc]init];}-(void)testValue1{_model.value=1;XCTAssertTr

ios - 我如何设置我的应用程序在 XCTest 下运行时会看到的标志?

KIF就像魔术一样,最近让我很困惑。这就是KIF和XCTest的工作原理。WWDC2014&2013中说:测试代码以插件的形式注入(inject)到宿主应用程序中,那么作为插件可以从主应用程序窃听哪些信息?HostApplication和Plugin之间有什么关系??使用KIF,我们可以感知通知和URL请求,但它是如何工作的?我的第一个想法是主机应用程序中的所有上下文都与插件共享但是为什么在测试中我们不能修改主应用程序中的变量?例如:wehavetwotargets:MagicProject--MagicApp--MagicUITestSupposeIhaveafilecalledMa

ios - 如何在 XCTest 中设置区域格式?

我想通过将(设置>通用>语言和区域)中的区域格式更改为英国、日本等不同区域来测试我的代码。我如何以编程方式执行此操作? 最佳答案 @Sean,您可以为不同的测试使用特定的方案,然后为每个测试添加一个“传递参数”,如-AppleLocaleen_US 关于ios-如何在XCTest中设置区域格式?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/27259852/

ios - XCTAssertEqual 测试在 ios 中的 UI 测试中不起作用

我在下面的UI中编写了UI测试用例-如果我有未注释的注释代码,我的测试不会成功,否则它会成功(XCTAssertEqual)我可以知道如何检查屏幕上是否显示登录按钮,以及为什么XCTAssertEqual不起作用functestExample(){letusernameTextField=app.textFields["Username"]usernameTextField.tap()usernameTextField.typeText("abc@gmail.com")letpasswordTextField=app.textFields["Password"]passwordText

ios - UI 测试从 uitableviewcell 获取文本

我正在编写一些UI测试,目前在匹配tableview单元格中的某些文本时遇到问题。所以我想测试tableview是否具有它需要的所有情况。我试过如下:if!app.staticTexts["sometext"].exists{//FAIL}但这不起作用,因为它没有找到文本,然后我发现了这样的东西:app.tables.cells.staticTexts["sometext"].exists最后但同样重要的是:app.tables.cells.containingType(.StaticText,identifier:"sometext")但似乎永远找不到文本,它在屏幕上。有人知道如何从

ios - 在 iOS 中通过 Xcode UI XCTests 测试标签栏角标(Badge)

如何在XCTests中检查标签栏角标(Badge)(tabBarItem.badgeValue)包含正确的数字?我可以在辅助功能检查器中看到目标标签栏按钮,但角标(Badge)元素不可检查。 最佳答案 您可以将accessibilityIdentifier值设置为标签栏项目。tabBarItem.accessibilityIdentifier="Your_Identifier"在您的UITest案例上,guardletvalue=app.buttons["Your_Identifier"].valueas?Stringelse{XC

ios - XCUITest 与通知横幅交互。

是否可以在XCUITest中验证通知横幅已发送到屏幕?我可以向通知添加可访问性标识符,但是当横幅出现在屏幕上时,我无法让XCUITest与之交互。我知道XCUITest在与应用程序不同的进程中运行,但我想知道它是否仍然可以与通知交互,或者它是否超出了XCUITest的范围?谢谢, 最佳答案 使用Xcode9现在可以做到这一点。您可以访问其他应用程序。这包括包含通知横幅的跳板。XCUIApplication现在有一个新的初始化程序,它将包标识符作为参数。它为您提供了对使用该bundle标识符的应用程序的引用。然后您可以使用普通查询来访