
ScalaTest
雾幻
种一棵树最好的时间是十年前,而后是现在
展开
-
ScalaTest——ScalaTest简介
1. ScalaTest简介ScalaTest几乎已经成为Scala语言默认的测试框架,而在JVM平台下,无论是否使用Scala进行开发,我认为仍有尝试ScalaTest的必要。这主要源于它提供了多种表达力超强的测试风格,能够满足各种层次的需求包括单元测试、BDD、验收测试、数据驱动测试。1. 1 UT与IT的风格选择ScalaTest一共提供了七种测试风格,分别为:FunSuite,Fla...原创 2018-10-24 09:13:52 · 3285 阅读 · 0 评论 -
ScalaTest——测试风格
建议使用 FlatSpec单元和集成测试以及 FeatureSpec验收测试。将FlatSpec作为默认选择,因为它与大多数开发人员熟悉的XUnit测试类似2.1 FunSuiteFunSuite可以轻松编写描述性测试名称,自然地编写集中测试,并生成类似规范的输出import org.scalatest.FunSuite//ScalaTest提供了名为FunSuite的特质重载了execu...原创 2018-10-24 09:14:03 · 4429 阅读 · 0 评论 -
ScalaTest——Assertion断言
ScalaTest默认在任何样式特征中都提供三个断言。您可以使用:assert 一般断言;assertResult 区分预期值和实际值;assertThrows 确保一些代码抛出预期的异常。ScalaTest的断言在特征中被定义,特征Assertions由Suite超级特征扩展到所有风格特征。特质Assertions还提供:assume有条件地取消测试;fail 无条件地测试失败...原创 2018-10-24 09:14:15 · 1420 阅读 · 0 评论 -
ScalaTest——matcher匹配器
ScalaTest中的Matchers匹配器分为两大类:Should Matcher和Must Matcher。它们的区别仅在测试报告中体现,所以在后面不同情形下的Matcher的说明中,只以Should Matcher为例。3.1 简单匹配器Simple Matcher就是在两个值之间使用一个断言在测试代码里,我们作出了一个断言:Thriller这张专辑的作者的firstName是Mic...原创 2018-10-24 09:14:43 · 1286 阅读 · 0 评论 -
ScalaTest——日志打印
5.1 Informers日志Informer在ScalaTest中是为了打印日志方便观察,跟debug语句很相似,但它可以放在任何地方来输出一些跟测试相关的信息。使用Informer只要调用info(String)方法即可。如下面的例子:import org.scalatest.{FunSpec, ShouldMatchers}class AlbumTest extends FunSpe...转载 2018-10-24 09:15:06 · 1011 阅读 · 0 评论 -
ScalaTest——测试分类
6.1 Pending待测试占位符,方便记下一个想法,但是还没有实现或者还没准备好。待测试(Pending Test)这个思想我觉得在实际中会用的比较多。pending是一个占位符,可以将尚未实现或定义的测试以pending来填充。Pending Test实际上就是利用pending来将测试标记为TODO的。如下面的例子:class AlbumSpec extends FunSpec wit...转载 2018-10-25 09:23:07 · 1306 阅读 · 0 评论 -
ScalaTest——Specifications行为规范
FunSepc,WordSpec,FeatureSpec,FreeSpec,FlatSpec大同小异,这里以FeatureSpec为例FeatureSpec是将测试分类为一系列的功能的测试。一个feature是软件的一个简单的功能点。每个功能将有该功能的多个场景(测试用例),每个场景代表一个成功的或者失败的测试案例。场景越多,测试越充分,健壮性越好。7.1 FunSpec下面的FunSpec...转载 2018-10-25 09:22:57 · 887 阅读 · 0 评论 -
ScalaTest——Fixtures
Fixture翻译成中文有这么些意思:固定装置;卡具;固定附物,固定附着物;固定财产,在ScalaTest中,可能会有这么一种情境:在一个测试类中,不同的测试方法需要的类实例、依赖等数据是一样的,显然,没必要为每个测试类去new一些它们专用的数据,可以提供一些公共的数据,然后在不同的测试方法中重用它们。要做到数据的重用,有很多方法:Scala语言自带的方法ScalaTest测试框架提供的解...转载 2018-10-25 09:22:48 · 551 阅读 · 0 评论