问题标签 [xctestcase]

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 回答
10861 浏览

ios - XCTestCase 检查是否在 Struct 中调用了方法

我正在尝试测试一段代码,在其中检查帐户是否已经创建了密钥并将其存储在钥匙串中。如果不是,它会调用一个启动 oauth 进程的方法。

如果用户没有密钥,我的第一个想法是覆盖我想调用的方法。但是我使用的是结构,因此无法继承和覆盖该方法。

如果我正在使用一个类,我会这样:

我还没有测试过这段代码,所以不确定它是否可以编译。但是从逻辑上讲,它似乎可以处理我所追求的情况。如果在authorizeWithGoogle我们调用的方法内,initiateAuthorization()那么我会知道这已经发生了。但是,当他们使用结构时不能这样做,因为我们不能从结构继承。

请注意:我是 TDD 新手,所以也许我想错了。欢迎提出其他建议。但是,我不想仅仅为了编写测试而从结构转换为类。我正在使用结构,因为我想变得更快。

有谁知道我可以测试一个函数是否在结构中被调用的方法?

==========

编辑:

为了回应 dasdom 的回答,我添加了一个我试图实现的一般方法的示例:

所以我想注入 MockDataApi 以便它可以返回我想要的,因为该方法采用一种 DataApi。但是我不确定我应该如何创建这个 MockDataApi 结构并将其传递给这个方法。

有人可以帮助了解如何为此目的构建这个模拟对象并使用它吗?我意识到它与协议有关,但很难将它拼凑在一起。

0 投票
1 回答
6643 浏览

ios - 在 XCTest UI 测试中,如何检查按钮、标签、视图的背景颜色?

我正在尝试验证是否可以在 XCTest UI 测试中获得背景颜色,我希望将背景颜色与设置值进行比较,这样我就不必依赖图像比较

0 投票
0 回答
339 浏览

ios - 使用 XCTestCase Xcode 7.3 在 UI 测试用例中找不到元素

我正在尝试使用 Xcode 7 创建 UI 测试用例,但我遇到了一个问题,即当我运行测试用例时会随机检测到按钮、表格等 UI 元素,并且大多数情况下它会给出错误提示“无法找到元素”。即使在添加延迟后也无法解决。任何人都可以请帮忙。

相同的代码是 XCUIDevice.sharedDevice().orientation = .Portrait

如果我编写代码 app.buttons["Login"].tap() 两次,它可以工作,否则它将无法找到 subsequest 控制元素。

0 投票
1 回答
535 浏览

ios - Xcode 单元测试:在两者中都实现了类。两者之一将用于 xctest

我无法在 xctest 目标中访问我的应用程序类。当我在测试用例构建阶段添加.m"_OBJ_CLASS_$_MYClassName", reference from: objc-class-ref in TestsCase.m ld:Symbol(s) not found for acrtichecture i386.文件时,此错误被删除,但在测试用例上运行时,我收到以下警告 - class is implemented in both. one of the two will be used. which is undefind xcode7 ios

我已经阅读了许多关于 stackoverflow 的解决方案,说要从测试用例目标的构建阶段删除 .m 引用,但如果我这样做,它会给我类引用错误。

在这个项目中,我后来添加了测试用例目标,它之前不存在。这是我需要做一些构建设置的原因吗?我已经尝试了我在stakoverflow上发现的所有东西,但都没有解决我的问题。

如果我创建“新项目”并尝试访问新创建的项目测试用例类中的类,一切正常。

0 投票
0 回答
108 浏览

ios - XCTest:内部类未正确转换

XCTestCase 子类实现如下:

在上面的代码中,视图控制器对象的类型是“AppName.ViewControllerName”,如果我将其指定为如下所示的 ViewControllerName,则测试因第 7 行中的转换而失败

我尝试将视图控制器类公开并在 swift2 中使用 @testable 注释。它不起作用。

我将“启用可测试性”构建设置设置为“是”。

即使我不使用 @testable 导入,代码也可以工作,但在许多博客和教程中,这会导致错误。

任何帮助,将不胜感激!提前致谢

0 投票
0 回答
505 浏览

ios - Xcode 8 GM Seed 上的 XCTest

我有一组 XCTest 自动化脚本运行我的应用程序的 UI 测试,我正在尝试在 Xcode 8 上进行 iOS 10 测试。

但是,目前 XCTest 框架的运行速度似乎比 Xcode 7 慢。只有我遇到这个问题吗?

还是我的应用程序的问题?它的构建方式或 XCTest 的编写方式?

其他人在 Xcode 8 上遇到过同样的缓慢问题吗?

谢谢,

0 投票
1 回答
461 浏览

xctest - 如何等待一个元素并且如果在一定时间后没有找到则不会失败 xcuitest

在我的应用程序中,我有两个选项卡按钮,分别是 Tasks 和 Worklist。任务总是被加载。但是 Worklist 按钮是动态的,并且仅在一段时间后才加载。

我想在一段时间后单击任务按钮。即,我需要等待 Worklist 按钮,如果它在一段时间后存在,则单击 Tasks 按钮。此外,如果超时超过并且未加载工作列表按钮,那么我需要单击任务按钮。

我不能使用睡眠。

我可以使用expectationForPredicate 和waitForExpectationsWithTimeout。但是如果在超时后找不到元素,waitForExpectationsWithTimeout 就会失败。即使我写

这会导致主线程停止。

我只想在加载工作清单后单击任务按钮。但如果在超时后未加载工作列表,那么我还需要单击任务按钮..

有什么解决办法。任何帮助。

0 投票
0 回答
568 浏览

ios - XCTestExpectation 示例 ios

我想在目标 C 中使用 xctest 测试 web 服务响应。

我在使用时遇到了一些问题

或者

有谁知道一些教程链接或示例,以便我可以理解它的正确用法?

谢谢

0 投票
2 回答
678 浏览

ios - 在我的情况下使用未声明的标识符错误

我的代码调用了一个 C 库函数:

我正在对上述函数进行单元测试,我想getData()在我的测试中模拟 C 函数,这是我的测试用例:

为什么我得到编译器错误: Use of undeclared identifier 'mData'在模拟getData()函数内部?

0 投票
1 回答
3205 浏览

objective-c - 在 Xcode 8 中,使测试方法在给定 XCTestCase 类中以特定顺序运行的方法是什么?

在 Xcode 8 之前,您可以通过在给定 XCTestCase 类中按字母顺序排列测试方法的名称(如本答案中所述),让您的单元测试以特定顺序运行。例如,测试会像这样运行:testA、testB、testC、testD 等。

但是在 Xcode 8 中,情况不再如此。例如,我有名为 test1、test2、test3、test4 的测试方法,并且 test4 将首先运行(见下面的截图)。然后我可以重新运行,test2 将在下一次运行时首先运行。

Xcode 测试导航器截图

那么如何让测试在 Xcode 8 上按顺序运行呢?