加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scalatest – 如何测试println

发布时间:2020-12-16 09:30:56 所属栏目:安全 来源:网络整理
导读:在Scalatest中有什么可以让我通过println语句来测试输出到标准吗? 到目前为止,我主要使用带有ShouldMatchers的FunSuite。 例如我们如何检查打印的输出 object Hi { def hello() { println("hello world") }} 解决方法 在控制台上测试打印语句的通常方式是
在Scalatest中有什么可以让我通过println语句来测试输出到标准吗?

到目前为止,我主要使用带有ShouldMatchers的FunSuite。

例如我们如何检查打印的输出

object Hi {
  def hello() {
    println("hello world")
  }
}

解决方法

在控制台上测试打印语句的通常方式是使程序的结构有所不同,以便您可以拦截这些语句。你可以例如介绍一个输出特征:

trait Output {
    def print(s: String) = Console.println(s)
  }

  class Hi extends Output {
    def hello() = print("hello world")
  }

在你的测试中,你可以定义另一个特征MockOutput实际上拦截了这个调用:

trait MockOutput extends Output {
    var messages: Seq[String] = Seq()

    override def print(s: String) = messages = messages :+ s
  }


  val hi = new Hi with MockOutput
  hi.hello()
  hi.messages should contain("hello world")

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读