问题标签 [specs2]
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.
unit-testing - Specs2 - Scala 中的平等测试
我已经用 Specs2 测试我的代码有一段时间了,在我的测试中,我想确保某种类型的两个对象正确比较:
执行此测试时,出现错误
这似乎是合理的,因为我的班级没有任何比较方法。所以我尝试了一些想到的事情:实现Ordered
并提供各种比较方法:
但我仍然不断收到同样的错误。我试图阅读 specs2 的源代码来了解 equalTo 匹配器是如何工作的,但之后我并没有变得更聪明。
知道如何修改我的类以使(股票)specs2 匹配器获取相等性吗?
BitField32 不是设计的案例类 - 我希望它是可变的。
scala - 如何使用 SBT 只运行一个 Spec2 规范?
如果您在 SBT 项目中定义了 2 个测试:
和
然后test
从 SBT 内部运行将执行这两个测试。只运行其中一个测试的最简单方法是什么?
scala - 如何通过 fromJson(toJson(date)) 将日期与 specs2 匹配
我陷入了以下问题:我想编写一个 specs2 规范来断言我的到和从 json 转换是对称的。但是,我在 joda datetime 日期上遇到错误。
这是一个证明问题的极简规格
我应该如何在第二次测试中比较 date 和 date2 ?它们是相同的,但 specs2 似乎没有看到:(
- - 编辑
“手动”在运行时使用 date.getClass.getCanonicalName 检查类型按预期返回 org.joda.time.Datetime
使用 DateTime#isEqual 确实有效,但我失去了流畅匹配器的好处以及它们带来的有用错误消息。此外,我实际上要比较的是恰好包含日期的案例类实例,而不是日期本身。
使用
产生相同的错误===
scala - Scala/Play 2 - 无法运行示例 specs2 测试
我在 OS X 上使用 Play Framework v2.04 和 Scala(通过 Homebrew 安装)。一切都按预期工作,但是我似乎无法从 Play 网站的文档中运行基本的Hello World示例 specs2 测试。这是我/app/test/example.scala
文件中的代码:
但是,当我运行时play test
,出现以下错误:
AFAIK,测试对象应该是 play.api 包的成员(根据 API 参考文档)。
关于如何解决这个问题的任何想法?
谢谢!
scala - Specs2 和 @Before/@After 类方法
给定如下代码:
如何确保在“匿名”和“signinOAuth”之前/之后执行相同的代码之前和之后,即使测试本身失败,“之后”方法也应该执行?
scala - 在 Scala 中使用 Specs2 和 Play 的模式匹配
我对 Scala/Play 2.0 和 Specs 有一个简单的问题。
这是我的测试
由于以下原因,这不会编译:
所以我认为状态(结果)匹配正在评估任何因此错误。鉴于我的默认情况具有错误的返回值,我应该如何指定其结果类型为 Result?
elasticsearch - 如何运行嵌入式弹性搜索实例进行测试
我正在使用具有用于单元测试目的的嵌入式弹性搜索实例的设置,但是当我使用 sbt ( ) 连续运行测试时~test-only <my-test>
,系统变得越来越不稳定,直到它冻结并不得不用火杀死。
我很难正常工作的事情是:
- 隔离
- 清理
- 关闭
设置它的正确方法是什么(最好使用 specs2 的解决方案,但也欢迎基于 Java 的解决方案)?
scala - Specs2 - 不应在并发环境中使用单元规范样式
Specs2 在处理验收规范(如果我们想要的话甚至是单元规范)时提升了函数式风格。
规范Specs2 哲学中提到了使用旧样式(可变样式)的风险,并涉及潜在的不良副作用:
需要了解的重要事项是:
副作用仅用于构建规范片段,通过改变变量它们还用于在出现故障时(通过抛出异常)短路示例的执行。如果您在示例主体中构建片段或同时执行相同的规范,那么天应该塌下来。“上下文”管理将通过案例类或特征完成(参见 org.specs2.examples.MutableSpec)
我不知道如何同时运行相同的规范,因为每个规范都与另一个不同(分离的类的实例),即使我们同时运行相同的两次或更多次。
确实,specFragments
(可变变量):
a trait
在被调用中声明FragmentBuilder
,而不是在object
(在scala意义上=>单例)或其他共享事物中......,每个实例specFragments
的局部变量也是如此。Specification
那么什么情况下可能会冒并发机制的风险呢?
我并没有真正想出一个真实的场景(非愚蠢)来证明 Specs2 功能风格的好处。
neo4j - Specs2/Neo4j - 将 ImpermanentGraphDatabase 与 Specs2 一起使用
我正在使用 Specs2 编写验收测试。
我想使用ImpermanentGraphDatabase
以获得内存中的 Neo4j 图表;非常适合集成测试。
我为 Neo4j 设置了 Spring-Data,我的 Spring 文件配置包含:
我想知道该选项destroy-method="shutdown"
是否考虑到 Specs2 而不是通常JUnit
,以便隔离每个 Spec 的example
.
总结一下:每个example
人都有自己的内存图实例,还是会被所有人共享?
我猜它不适用,因为 specs2Specification
对所有这些 Spec 的示例执行使用相同的实例。事实上,在 Specs2 的函数式风格中,只有一个is()
方法被称为在一个实例中包含所有示例。
我还尝试实现该BeforeExample
特征以在每个处清理数据库,example
但是...使用 Given/Then/When 样式,似乎整个被认为是唯一的example
. 实际上,分隔符^
不是传统!
的 ,后者代表 one example
。
我想ImpermanentGraphDatabse
在每个步骤(Given
或When
或Then
步骤)之前清理内存数据库()