问题标签 [quick-nimble]

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 投票
3 回答
1092 浏览

ios - 单元测试(快速/灵活)-(未找到测试)

我有单元测试的问题。当我运行测试时,它以"No tests found". 我正在使用AppCodeQuick/Nimble框架进行单元测试,但它在 XCode 中也不起作用。

我已经XCTest/Kiwi使用 Target:MyAppTests、Configuration:Development 和 Class:All 测试类运行配置(即使指定了特定的测试类,它也不起作用)。据我所知,没有什么更多的配置。

任何想法我做错了什么?我不确定我应该提供什么其他类型的信息/配置.. 谢谢

编辑:示例单元测试代码

0 投票
1 回答
195 浏览

ios - How should I fix the errors in Nimble files?

I'm attempting to use the Quick/Nimble testing framework in the iOS application at work. When I build my xcworkspace project I get all the errors in the image below. All these errors are within the Pods.xcodeproj in Pods/Nimble folder.

I'm using Swift 3, Xcode 8.0, Cocoapods 1.1.1, fastlane 1.10.5, Nimble 5.1.1, Quick 0.10.0, and Swiftlint. Are these errors caused by Swiftlint, Swift 3, or something else?

enter image description here

0 投票
1 回答
516 浏览

swift - Swift Quick/Nimble:期望的模棱两可的使用

我是 Quick/Nimble 的新手,所以我尝试了一个简单的单元测试:

然而,在期望线上,我得到了错误:

'expect(_:file:line:)' 的模糊使用

我不明白为什么这是模棱两可的。据我所知,这就是它在快速示例中的样子。

0 投票
1 回答
1586 浏览

swift - Swift Quick/Nimble 测试未运行

我正在尝试做一个简单的测试,看看 Quick 和 Nimble 是否正常工作,但它们不是。这是我应该打破的简单测试:

但是如果我运行测试,我会看到输出:

在 0.000 (0.004) 秒内执行了 0 次测试,0 次失败(0 次意外)

我不知道为什么要运行零测试。如果这可能是问题的原因,我确实使用 Swift 包管理器而不是 Cocoapods 安装了 Quick and Nimble。

0 投票
1 回答
2378 浏览

swift - 使用 Nimble 测试在 Quick 中引发错误的方法时出错

在测试引发异常的方法时,我无法正确获取 Nimble 匹配器。根据文档,它应该很简单。我只需要这样的期望

然而,使用 Swift 3 和 Xcode 8.2,我得到了一个编译器编辑器。这是上下文。

我在“it”声明行收到以下错误

0 投票
2 回答
1542 浏览

swift - BDD 测试中的 Moya 存根请求

我想在我的Quick/Nimble BDD 测试中发出Moya存根请求。Moya有一个我使用 JSON 文件创建的参数:sampleData

如何在测试中使用此参数?在测试中提出Moya存根请求的任何想法?

谢谢!

0 投票
1 回答
517 浏览

swift - 如何比较两个实际上符合“Equatable”的“Any”对象

我想实现一个ValueObjectSharedExampleConfiguration: QuickConfigurationusing Quick

然后我想测试任何符合Equatable这个共享示例的类/结构,如下所示:

但问题是,SharedExampleContext实际上是闭包返回[String: Any],所以obj1a,我在闭包中得到obj1bobj2变量sharedExample都是类型Any,不一定符合Equatable。因此代码obj1a == obj1b无法编译。

实际上,如果我检查obj1a is Equatable它返回true。但我不知道如何将其转换为编译器可以接受的正确类型。obj1a as! Equatable不会编译,因为Equatable它是一个通用协议。

我不能只写obj1a as! Foo,因为如果有另一个课程Bar: Equatable我想要我的 sharedExample 也适用于此。

这里的主要问题是:我有两个变量转换为Any,它们保证最初是符合Equatable. 在不知道它们的实际类型的情况下,我应该如何合法地比较这两个变量?

0 投票
1 回答
62 浏览

swift - 我应该如何测试 BDD 中值对象类型的“isEqual”方法?

我是 BDD 的新手,甚至是整个测试世界的新手。

在快速编写简单的线性代数库时,我正在尝试采用 BDD 实践。所以会有很多值对象类型,比如MatrixVector等等。在写代码的时候,我想我还是需要坚持 TDD 原则(我说的对吗?):

没有失败的测试不写任何一行代码

为了实现一个值对象类型,我需要让它符合Equatable协议并实现它的==操作符。这是添加代码,所以我需要一个失败的测试。如何为这种场景编写规范?

有人可能会建议一些方法,例如:

这将是一个丑陋的样板,原因有两个:

  1. 可能有很多值对象类型,我需要为它们重复一遍
  2. 可能有很多情况会导致两个对象不相等。以上面的规范为例,==like的实现return lhs.rows == rhs.rows将通过测试。为了揭示这个“错误”,我需要添加另一个期望,例如expect(matrixWithDifferentColmunCount) != aMatrix. 同样,这种重复发生在所有值对象类型上。

那么,我应该如何operator==优雅地测试这个“isEqual”(或)方法?还是我根本不应该测试它?


我正在使用 swift 和Quick来测试框架。Quick 提供了一种称为SharedExample的机制来减少样板文件。但是由于 swift 是一种静态类型语言,而且 Quick 的共享示例不支持泛型,所以我不能直接使用共享示例来测试值对象。

我想出了一个解决方法,但不认为它是一个优雅的解决方法。

0 投票
1 回答
314 浏览

quick-nimble - 我可以快速失败一个测试系列吗?

如果出现给定情况,我有一组测试会使整个测试套件崩溃。此外,这种情况已经是套件的失败。

我宁愿在系列设置期间测试条件是否为真,而不是崩溃,并在失败时快速中止它。

那可能吗?

0 投票
1 回答
1016 浏览

ios - 为什么在 Quick 的单元测试中多次调用 before- 和 afterEach 块?

我用一些示例组编写了一个测试用例,包括beforeEachafterEach。而且我希望 eachbeforeEachafterEach会为 each 调用一次it

唉,对于一个单一it的,beforeEach并被afterEach多次调用。

我查看了一些文档(即 Quick 自己的文档和http://jasmine.github.io/2.1/introduction.html),但这些对我的事业没有帮助。

这是一个小片段,演示了这一点:

类 CheckerTests:QuickSpec {

}


我的控制台日志:

之前的控制台日志

上面的日志提出了两个问题:

  • 我不确定何时 beforeEach以及afterEach现在被调用;我也不知道为什么我看到多个日志调用它们。怎么会被多次调用?

-上面的日志显示,在示例通过之前context调用了 after 块......不应该在示例之后发生吗?

从我的代码片段中,我希望日志返回:

之后的控制台日志

有人可以解释这里发生了什么吗?这是正确的行为吗?


编辑:

正如评论所建议的那样;我还在示例中添加了一个日志it(请参阅上面的修改后的代码片段)。这给了我以下日志:

上面的日志显示该示例运行了两次,这让我更加困惑。


编辑:
回答了一个问题:

-上面的日志显示,在示例通过之前context调用了 after 块......不应该在示例之后发生吗?

似乎测试以正确的顺序进行,因此可以回答上述问题。


编辑:

以供参考; 这就是我的 Podfile 的样子:

除此之外,我不确定还有哪些其他设置可能会影响测试。