问题标签 [scalatest]
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.
java - 单元测试相同特征/接口的多个实现
我主要在 scala 和 java 中编程,在 scala 和 junit 中使用 scalatest 进行单元测试。我想将相同的测试应用于相同接口/特征的多个实现。这个想法是验证接口契约是否被强制执行并检查 Liskov 替换原则。
例如,在测试列表的实现时,测试可能包括:
- 一个实例应该是空的,当且仅当且仅当它的大小为零。
- 调用 clear 后,大小应该为零。
- 在列表中间添加一个元素会使 rhs 元素的索引增加 1。
- 等等
最佳做法是什么?
scala - 将 SBT 与 ScalaTest 一起使用时,是否可以安全地忽略 ScalaCheck/Specs 警告?
我有一个简单FunSuite
的基于 ScalaTest:
我正在使用以下 SBT 项目配置运行它:
但是,当我运行时,sbt test
会收到以下警告:
目前我假设这些只是“噪音”(由统一的测试接口引起?),我可以放心地忽略它们。但这对我内心的强迫症部分来说有点烦人(尽管我准备为其他框架添加依赖项并不是那么烦人)。
这是一个正确的假设,还是我的测试/配置代码中有细微的错误?如果可以安全地忽略,是否有任何其他方法可以抑制这些错误,或者人们是否经常包含所有三个框架,以便他们可以为不同的测试挑选最佳方法?
蒂亚,保罗。
(添加:scala v2.7.7 和 sbt v0.7.4)
scala - ScalaTest:单例对象重新初始化的问题
我正在使用 ScalaTest 测试我用 Scala 编写的解析器。解析器一次处理一个文件,它有一个单例对象,如下所示:
我写的测试用例有点像这样
现在在每次迭代中,单例对象 Resolver 中先前迭代的副作用不会被清除。
有没有办法指定 scalatest 模块重新初始化单例对象?
更新:使用丹尼尔的建议,我更新了代码,还添加了更多细节。
更新:显然是解析器在做一些可疑的事情。在随后的调用中,它不会丢弃先前的 AST。奇怪的。由于这是题外话,我会挖掘更多,可能会使用一个单独的线程进行讨论,谢谢大家的回答
最终更新:问题出在 Resolver 以外的单例对象上,它位于其他文件中,所以我不知何故错过了它。我能够使用 Daniel Spiewak 的回复来解决这个问题。这是做事的肮脏方式,但考虑到我的情况以及我正在编写测试代码的事实,这也是唯一的事情,这不会进入生产使用。
scala - Scala:基于文件夹定义测试用例
我必须测试一个接受一个输入文件的程序。我已将所有输入文件放在一个文件夹中,现在我想使用 SBT 和 ScalaTest 具有以下功能:
- TestAll :为所有文件一次调用一个输入文件的程序
test
测试一:使用从 sbt 控制台提供的一个输入文件作为命令的参数来调用程序
暂时foldername是固定路径,所以可以通过以下方式获取所有文件的列表:
谁能给我一个简短的想法,说明哪个 scalatest 类最适合这个目的?
unit-testing - ScalaTest:使用 ShouldMatcher 检查序列的内容
在我的单元测试中,我想表达一个计算(结果)序列产生了一个预定义的结果值序列。但无需假设任何关于序列容器的实际实现类型。
我想清楚地说明我的意图,不言自明。
如果我尝试使用 ScalaTest 的“ShouldMatchers”并编写
...然后我遇到了简单相等的麻烦,因为calculation(..)
可能返回一个ArrayBuffer,Seq("x","u")
而是一个List
unit-testing - 改进此代码的方法
我正在尝试使用 Scalatest 为我的 java 应用程序编写一些测试代码。我想,既然 Scala 有更多可读的语法,它会产生更可读的测试代码。
到目前为止,这是我管理的:
我对这段代码很失望。这实际上与我需要用 Java 编写的内容相同。请帮助我使它更像scala和功能。
java - 如何从 Scala 代码中动态填充 java.util.HashMap?
我正在对来自 ScalaTest 的 java 代码进行单元测试,并希望在它声明的同一语句中填充 java.util.HashMap。在 Scala 中可以做到这一点吗?
scala - 使用 TDD 学习 Scala
我现在正在学习 Scala。我看到那里有 2 个测试框架,ScalaTest 和 Specs。我唯一的问题是我仍然不能轻松地决定哪种语言更好。此外,我习惯于在代码之前编写测试,目前我不清楚如何在函数式编程中做到这一点。理想情况下,我想以 TDD 方式学习 Scala,有没有关于它的资源?
exception - 如何使用 ScalaTest 测试预期异常的附加属性
我正在使用 ScalaTest 来测试一些 Scala 代码。我目前使用这样的代码测试预期的异常
但是我想对异常添加额外的检查,例如我想检查异常消息是否包含某个字符串。
有没有“干净”的方法来做到这一点?还是我必须使用 try catch 块?