问题标签 [xctest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
278 浏览

ios - 如何将 .m 文件的属性访问到另一个 .m 文件中?

我有 ABCD.m 类,如下所示

还有另一个类 Test.m(XCTestCase 的子类)来编写 ABCD.m 的单元测试用例

}

输出:

结果 1:否

结果 2:StackOverFlow

当我设置属性“字符串”时,它被设置为“StackOverFlow”。但是对于 UIButton 属性“按钮”,它没有设置为“否”。为什么我不能设置 UIButton 的“启用”属性,因为我可以从 Test.m 类设置 ABCD.m 的 NSString

0 投票
3 回答
6659 浏览

ios - XCTest 和 CoreData

我正在尝试使用 XCTest 类和方法在 Xcode 5 中对我的模型进行单元测试。

因为我的模型类继承了managedObject,所以我不能只实例化(alloc/init)它们并调用 getter 和 setter 或我需要测试的方法。我需要通过使用NSEntityDescription和使用来创建它们managedObjectContext

正是在这一点上,我遇到了麻烦。我不知道在哪里以及如何创建managedObjectContext用于单元测试的目的。

如果有人有一些建议或代码示例,那将非常有帮助。谢谢。

0 投票
2 回答
1350 浏览

ios7 - 使用 XCTest 在单元测试中获取变量的 nil 值

appDelegate 实例显示 nil 值,测试用例“testAppDelegate”失败。苹果开发者网站提供的示例代码也是如此,但正在使用 SenTestCase,请帮帮我,即使目标是根据 WWDC 2013 视频“Testing in Xcode 5 session 409”设置的

0 投票
1 回答
284 浏览

ios - 对类加载有副作用的 iOS 模拟类

我们正在尝试创建一个单元测试(尽管使用 OCMock,但对其他框架开放),它模拟一个在类加载时有副作用的类。

我们有一个跟踪类,它封装了对 Flurry 等其他跟踪库的调用。

许多其他跟踪库(特别是 Flurry)在类初始化时执行代码。

单元测试失败,因为代码无法在单元测试环境中执行。理想情况下,我们想用模拟/存根替换 Flurry 类。

当调用此代码时,它会尝试使用SCNetworkReachability并接收exceptions...

我们如何存根/模拟对具有如下静态实现的 Flurry 的调用?

0 投票
0 回答
995 浏览

ios - 当我从测试用例中进行 NSLog 时,XCTest 测试失败,测试用例“未完成”

刚开始在 Xcode 5 中使用 XCTest((Xcode 版本 5.0.2 [5A3005])。我制作了一个示例测试文件,在其中测试 true 为真。它可以正常工作并且测试按预期通过。当我NSLog在在断言的前面,测试失败并显示消息“test_case 未完成”,其中“test_case”是我的测试方法名称(在我的情况下为 testTrue)。

这是test1.m失败的情况。失败和工作之间的唯一区别是失败案例NSLog在测试方法中有一个。(当我尝试NSLog使用 setUp 和/或 tearDown 方法时,它也会失败。)

以下是失败案例中日志导航器的具体输出:

这是它工作时的相同输出(当我不包括该NSLog语句时):

那么为什么这个测试在我NSLog进去的时候会失败呢?在此先感谢您的帮助...

0 投票
1 回答
1512 浏览

unit-testing - XCTestCase 的意外行为——创建不同的实例来运行测试方法

我用 XCTestCase 编写单元测试用例,并在 -setUp 中初始化变量如下:

但是当我尝试在测试用例中使用 myPath 时,它只适用于第一个,并且“myPath”在后续用例中将为零。

所以我在 -setUp 中设置了断点,看看会发生什么。我发现它为每种方法创建了新实例!!

为了仔细检查,我创建了一个新项目和测试目标来记录测试用例地址,如下所示:

结果是:

由于 XCTestCase 被设计为具有一个或多个测试方法的对象,因此不应为每个方法创建不同的实例。

在这种情况下,我不知道在哪里设置我的测试环境。即使在 -init 中编写设置代码,它仍然会创建新实例并多次调用 -init。目前,我只有几个单元测试,但是当测试数量增加,并且设置过程变得更加复杂时,这将是一个问题。谁能给我一个建议?

添加问题摘要:

如果我在一个测试用例类中有 2 个测试方法,则行为将是:

  1. 将新测试用例实例化为对象 1
  2. -设置
  3. 测试 1
  4. -拆除
  5. 将新测试用例实例化为对象 2
  6. -设置
  7. 测试 2
  8. -拆除

为什么需要第 5 步?

答案

乔恩·里德提供的答案

更多信息:

0 投票
1 回答
968 浏览

ios - XCTAssertEqualObjects 和 NSManagedObjects

我不确定为什么XCTAssertEqualObjects说这些对象不相等:

会不会是activities领域的原因?是否有另一种方法可以在不迭代和比较其属性的情况下松散地比较两个对象?

0 投票
1 回答
1520 浏览

ios - 如何在 XCTest 中运行“单个测试用例”?

当我在 XCode 的测试导航器中单击“运行 MyTest3”时,它也会运行“MyTest1”和“MyTest2”。有没有办法一次运行单个测试用例,就像 GHUnitTest 一样?

0 投票
1 回答
4007 浏览

ios - 如何在不运行应用程序的情况下运行 XCTest?

当我尝试在 XCTest 中运行测试用例时,我注意到 XCode 将始终首先激活应用程序。由于我的应用程序在初始化期间运行了很多东西(例如:检查新版本),因此我不希望它在调试测试用例时运行。

有没有办法在不激活应用程序的情况下运行 XCTest?

0 投票
5 回答
4017 浏览

ios - 使用 XCTest 测试 PresentedViewController

我有我想测试的方法:

考试...

但它不能正常工作。我应该有 MFMailComposeViewController 作为presentViewController,但我有空。我不知道该怎么办。请帮忙!