概述
转载自: http://blog.sina.com.cn/s/blog_a3869e9a01017dcn.html
Scala 的单元测试可以使用Java的JUnit 或 Scala的ScalaTest、ScalaCheck等等。
简单示例:
ScalaTest 提供了若干编写测试的方法,最简单的就是创建扩展 org.scalatest.Suite的类并在这些类中定义测试方法。Suite代表一个测试集。Scala 解释器中通过调用 execute 方法运行 Suite。特质 Suite的 execute方法使用反射发现测试方法并调用它们。ScalaTest 提供了名为 FunSuite的特质,重载了execute,从而可以让以函数值的方式而不是方法定义测试。import org.scalatest.FunSuite
class UtilTest1 extends FunSuite {
test("Util.getString 1") {
val v = UtilObject.getString(1)
assert(v == "1-str")
}
test("Util.getString 2") {
val v = UtilObject.getString(2)
assert(v == "2-str")
}
}
FunSuite里的“Fun”表示函数。“test”是定义在FunSuite中的方法,将被ElementSuite的主构造器调用。圆括号里的字串指定了测试的名称,名称需要唯一,大括号之间的是测试代码。测试代码是被作为传名参数传递给test的函数,并由test函数登记在册以备之后的运行。
FunSuite的一个好处是不用给你所有的测试以“test”开头起名。而且,可以更容易地给测试起很长的名称,因为不需要把它们编码为驼峰形式,而对于测试方法就必须这么做了。
检查方法是否抛出了期待的异常,可以使用 ScalaTest 的 intercept 方法。
test("get execption") {
intercept[Exception] {
UtilObject.getExecption()
}
}
如果大括号之间的代码被一个参数指定的异常类的实例突然中断,intercept 将返回捕获的异常,以便于之后进行检查。另一方面,如果代码没有抛出异常,或抛出了不同的异常,intercept将抛出 AssertionError,并且将在失败报告中得到错误消息。
如果需要使用mock的话可以使用org.mockito。
最后
以上就是矮小月光为你收集整理的Scala单元测试的全部内容,希望文章能够帮你解决Scala单元测试所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复