问题标签 [xctestexpectation]

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

ios - XCTest:传递函数参数

从 XCTest 文件中,我正在调用 Web 服务调用,并使用“self.waitForExpectationsWithTimeout”API 放置了一个等待块并获取服务响应。

我几乎没有使用此服务响应执行的测试方法。当我将此响应存储在全局变量中并从其他测试函数访问它时,此变量将为零。这里需要做什么?我可以将它作为函数参数传递吗?

谢谢

0 投票
1 回答
4042 浏览

ios - XCTAssert 中断函数

如果逻辑失败,如何停止单元测试执行。下面是示例。XCTAssertEqual("Hello", "Hi", "Passed")条件失败时如何停止执行。

0 投票
1 回答
2031 浏览

ios - XCTest 并使用模拟对象作为通知接收器

在带有 swift 的 XCTest 中,您可以在需要它的测试函数中定义模拟对象。像这样

我正在尝试使用这些模拟对象来测试另一个函数是否在给定条件下发出正确的通知(在我的情况下,成功通知是用 204 状态代码广播到对象的。

我遇到的问题是我得到一个“无法识别的选择器”运行时错误,即使该deletedSuccess()函数显然在那里/

这是一些代码转储

使用我不知道的模拟对象和选择器是否存在某种问题?

0 投票
1 回答
740 浏览

objective-c - 管理 XCTests 上的多个异步操作

我遇到了 XCTestCase 对象中的异步操作问题。我从一个链开始expectation-waitForExpectation,有时将期望实例作为方法参数传递,以使其由异步操作完成块来实现。现在我改变了方法,因为我看不到以前写的不好的代码,所以我尝试了这种方式:

__waitForLoadingAppAndDo:方法实现为

其他__方法与此类似。显然,现在,该testThat方法不等待方法完成处理程序。我该如何改进它以及如何让testThat方法等待完成?是XCTestExpectation路吗?(告诉我不要呃)

补充:那么,这是独特的方式吗?

添加-2

我试过了

但是这些组被异步调用,无需等待完成块。例如:我期望OP1首先启动,并且在OP1完成块中, OP2将启动。

ADDING-3:我对dispatch_semaphore. 我喜欢它,但有一个东西我会替换。如果我要等待信号,我会阻塞主线程,所以我必须执行dispatch_async以下wait命令:

有没有办法避免这种情况?

0 投票
0 回答
1220 浏览

ios - iOS 测试异步方法性能

我正在尝试为 API 请求方法编写性能测试。当我在没有 measureBlock 的情况下运行它时,它运行正常,但是当我将它用作性能测试时,我收到了错误消息:

*** -[Performance waitForExpectationsWithTimeout:handler:] 中的断言失败,/SourceCache/XCTest_Sim/XCTest-7701/XCTestFramework/Classes/XCTestCase+AsynchronousTesting.m:236 /Users/iphonetest03/Desktop/shootr-ios/Tests/Performance。 m:42:错误:-[Performance testPerformanceExample]:失败:捕获“NSInternalInconsistencyException”,“API 违规 - 调用等待而没有设置任何期望。”

欢迎任何建议。谢谢。这是我的代码:

0 投票
2 回答
2051 浏览

swift - 如果 XCTestExpectation 出乎意料怎么办

我正在用Swift编写XCTest单元测试。这个想法是在特定情况下不能调用回调。

所以我做的是

调用回调时,一切正常:它失败并显示一条消息“不能触发回调”,这正是我所需要的。

但是如果期望没有实现,它会失败并说

异步等待失败:超过 1 秒的超时,未实现预期:“回调被触发”。

由于我需要的是未实现的期望,因此我不希望测试失败。

你有什么建议我可以做些什么来避免这种情况?或者,也许,我可以用不同的方式达到我的目标?谢谢。

0 投票
0 回答
440 浏览

ios - 如何在调用 completionHandler 块之前使测试崩溃的异步 XCTestCase 失败?

我正在使用 XCTestCase 进行 iOS 单元测试,并且由于异步 Web 服务处理程序上的“无法识别的选择器”而崩溃,该处理程序通过 completionHandler 块返回操纵的 NSDictionary。

崩溃不是我对断言语句(XCTAssertNoThrows)的期望,我想看到由于崩溃而导致的断言失败,但是我编写的测试方法停止执行并且没有任何测试结果(通过/失败)结束。

不幸的是,服务处理程序代码没有被隔离来进行适当的单元测试。由于它不是孤立的,@try...@catch 没有捕获 NSInvalidArgumentException 并且它是无用的。很可能,我想实现顶级 NSSetUncaughtExceptionHandler,但我不知道如何使来自 NSSetUncaughtExceptionHandler 的相关测试失败。

0 投票
0 回答
544 浏览

ios - XCTest:iOS 中的 XCTestExpectations 崩溃

当我运行单元测试脚本时,它在“ServiceTest”类中​​的“waitForExpectationWithTimeout”处崩溃。

如果我单独为这个“ServiceTest”类运行测试脚本,那么它可以正常工作而不会崩溃。但是如果我为整个项目运行测试脚本,我就会崩溃。我对这次崩溃的原因和含义一无所知。感谢任何帮助。谢谢。

在此处输入图像描述

0 投票
1 回答
1427 浏览

ios - IOS:未执行使用 dispatch_async 的单元测试

我写了一个类似于下面代码的脚本。我在“dispatch_async”中保留了断点,但它没有被执行。这里可能是什么问题?

0 投票
1 回答
1378 浏览

ios - 如何使用expectForNotification

我已经尝试了所有方法,但获得成功测试的唯一方法是在测试功能中实际发送通知,这有点违背了目的。

我有一个按钮。当我点击按钮时,它会发送通知。如何使用 expectForNotification 来查看是否发送了此通知?