scala 单元测试

原创 2015年07月10日 07:34:54

scala 单元测试

字符串测试

ScalaTest 提供了很方便的测试字符串的工具, 这些工具可以进行正则表达式的测试,常用方法有:

val string = "test string"
string should startWith("test")
string should endWith("string")
string should not endWith("the end")
string should not include("down down")
string should include("st")

string should startWith regex("I.fel+")
string should endWith regex ("h.{4}r")
string should not endWith regex("\\d{5}")
string should include regex ("flames?")

string should fullyMatch regex ("""I(.|\n|\S)*higher""")

整数测试

比较数值的时候可以使用:

 val answerToLife = 42
 answerToLife should be < (50)
 answerToLife should not be > (50)
 answerToLife should be > (3)
 answerToLife should be <= (100)
 answerToLife should be >= (0)
 answerToLife should be === (42)
 answerToLife should not be === (400)

三等号 === 是用来测试左右是否相等, 而 == 是用来检查是否相同, 在测试环境中用于昂不假设(assert) 相等。 所以最好的方法是用=== 或者是使用 equal 方法


浮点数测试

测试浮点数时,主要是判断精准度,这时可以使用 plusOrMinus 方法来规定范围, 比如:

(0.9 - 0.8) should be (0.1 plusOrMinus .01)
(0.4 + 0.1) should not be (40.00 plusOrMinus .30)

比较引用类型

在scala中,如果需要测试两个引用类型可以使用 theSameInstanceAs来比较,例如

val garthBrooks = new Artist("Garth", "Brooks")
val chrisGaines = garthBrooks

garthBrooks should be theSameInstanceAs (chrisGaines)

val debbieHarry = new Artist("Debbie", "Harry")
garthBrooks should not be theSameInstanceAs(debbieHarry)

如果在测试 collection的时候,可以使用如下方法:

list() should be(' empty')
8::6::7::5::Nil should contain(7)
(1 to 9) should have length(9)
(20 to 60 by 2) should have size(21)

ScalaTest 可以对Map使用特别的匹配符, 通过此种方法可以判断一个map的key和value。

val map = Map("Jimmy Page" -> "Led Zeppelin", "Sting" -> "The Police",
    "Aimee Mann" -> "Til\' Tuesday")
map should contain key ("Sting")
map should contain value ("Led Zeppelin")
map should not contain key("Brian May")

在使用 java.util.collection 的时候也可以使用此种方法来判断
另外,如果需要组合条件, 可以使用andor 来进行组合语句判断, 也可以通过 ‘not’ 进行取反。


异常处理

先看代码:

 "An album" should {
    "throw an IllegalArgumentException if there are no acts when created" in {
      intercept[IllegalArgumentException] {
          new Album("The Joy of Listening to Nothing", 1980, List())
      }
    }
  }

当创建 Album 对象时,我们可以用 {} 来捕获错误的信息,如果没有获得所设计的行为, 这个测试就会失败, 我们可以在这里控制是否期待一个异常。

FreeSpec in Scala

公司在使用FreeSpec, 这个spec方法比GivenWhenThen方法更整洁也更灵活。 这个方法允许测试方法测试多个测试过程,比如

"given something" - {

    "when something" - {
        "then something "  in {
        }
    }
}

- {} 中,不允许使用 比较或者 assert语句, 但是在 in {} 中是可以使用assert 语句, 而且 in {} 语句可以和其他 - {} 语句平行

版权声明:本文为博主原创文章,未经博主允许不得转载。

Scala的单元测试

Scala有着自己的单元测试,当然它也可以使用java的junit等单元测试 1、准备工作 你根据你需要的版本去下载单元测试的jar包(点击进入下载地址,从maven上面下载) 测试用例代码 ...
  • sinat_35045195
  • sinat_35045195
  • 2017年08月15日 11:12
  • 394

scala入门测试

scala入门测试: 安装可以直接sudo apt-get install scala 或者在官网下载scala安装包安装。 我是通过前一种安装1.注意事项1:scala test.scala ...
  • bob601450868
  • bob601450868
  • 2015年09月18日 10:55
  • 988

Scala单元测试

转载自: http://blog.sina.com.cn/s/blog_a3869e9a01017dcn.html Scala 的单元测试可以使用Java的JUnit 或 Scala的Scala...
  • zero__007
  • zero__007
  • 2016年03月04日 17:12
  • 3099

Scala使用JUnit4单元测试

Scala使用JUnit4单元测试Maven pom: junit junit 4.11 test Test code:import org.junit.{Assert, Test...
  • liangyihuai
  • liangyihuai
  • 2017年02月15日 13:47
  • 1811

Spark程序进行单元测试-使用scala

Spark 中进行一些单元测试技巧:最近刚写了一点Spark上的单元测试,发现一些小技巧,示例有是一些简单的伪代码,有问题或者不对的欢迎指正,有其他也欢迎补充rdd测试spark程序一般从集群中读取数...
  • huxin008
  • huxin008
  • 2016年09月24日 14:42
  • 1608

ScalaTest测试框架

ScalaTest 是一个开源测试框架,旨在令测试更加高效。其开发者是Bill Venners(Artima主编)。Bill Venners这样描述ScalaTest: ScalaTest是...
  • hany3000
  • hany3000
  • 2016年04月01日 02:49
  • 3971

Maven+scala+spark常见问题总结

Maven常见问题总结
  • sivolin
  • sivolin
  • 2015年07月14日 14:32
  • 6021

JS和JQ的单元测试例子、工具

  • 2018年01月11日 20:27
  • 22KB
  • 下载

单元测试之道C#版:使用NUnit

  • 2018年01月09日 15:54
  • 6.93MB
  • 下载

单元测试之道C#版——使用Nunit pdf格式

  • 2018年01月03日 10:34
  • 5.76MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:scala 单元测试
举报原因:
原因补充:

(最多只允许输入30个字)