在Scala中运行测试用例会给出“废弃的非单位值”

时间:2019-02-06 14:02:29

标签: scala sbt scalatest

我是Scala的新手

我的sbt版本是: 0.13.17

我的Scala版本是: Scala代码运行程序版本2.12.6-版权所有2002-2018,LAMP / EPFL和Lightbend,Inc。

我正在尝试使用以下代码运行测试用例

class TestSpec extends WordSpec with Matchers with MockFactory with OneAppPerSuite {

  "it" should {
    "add 2 numbers" in new Testing() {
      val a = 2
      val b = 3
      val expected = 5
      val result: Int = add(2, 3)

      result shouldEqual expected
    }
  }

  trait Testing {

    def add(a: Int, b: Int): Int = {
      a + b
    }
  }
}

我得到以下错误

discarded non-Unit value
 "add 2 numbers" in new Testing() {

在我的build.sbt文件中,我看到了

“-Ywarn-value-discard”,//未使用非单位表达式结果时发出警告

我无法删除上述行以及如何确保测试用例能够执行。

我已经通过此链接 Suppress "discarded non-Unit value" warning。但是不确定需要做什么。 任何帮助都将受到高度赞赏

3 个答案:

答案 0 :(得分:1)

I just tried something like ... And it works.

class Testclass extends  FlatSpec with Matchers  with TestTrait {
  it should "add two integers" in  {
      val a: Int =  2
      val b: Int =  3
      val result = add(a, b)
      result shouldEqual(5)
    }
}

trait TestTrait {
  def add(a: Int, b: Int):Int = {
     a + b
  }
}

答案 1 :(得分:1)

在scalacOptions中

disable -Ywarn-value-discard

答案 2 :(得分:-1)

出现此警告是因为未使用分配的值a和b。也许你想写:

val result: Int = add(a, b)