2
votes

L'exécution du cas de test dans Scala donne une "valeur non-unitaire rejetée"

Je suis novice en scala

Ma version sbt est: 0.13.17

Ma version Scala est: Scala code runner version 2.12.6 - Copyright 2002-2018, LAMP / EPFL et Lightbend, Inc.

J'essaye d'exécuter le cas de test avec le code suivant

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

Et j'obtiens l'erreur suivante

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
    }
  }
}

Dans mon fichier build.sbt, je vois ceci

"-Ywarn-value-discard", // Warn lorsque les résultats d'expressions non unitaires ne sont pas utilisés

Je ne peux pas supprimer la ligne ci-dessus et comment m'assurer que mon scénario de test s'exécute.

J'ai parcouru ce lien Supprimer l'avertissement "valeur non unitaire rejetée" . Mais pas sûr de ce qui doit être fait. Toute aide est très appréciée


2 commentaires

S'il ne s'agit que d'un avertissement, vos tests sont-ils toujours en cours d'exécution? Ou est-ce que cela empêche réellement vos tests de fonctionner?


@JamesWhiteley Mes tests sont arrêtés. J'obtiens une erreur pas un avertissement


3 Réponses :


-1
votes

Cet avertissement est dû au fait que les valeurs affectées a et b ne sont pas utilisées. Peut-être que vous vouliez écrire:

val result: Int = add(a, b)


0 commentaires

1
votes
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
  }
}

0 commentaires

0
votes

<₹disable -Ywarn-value-discard dans scalacOptions


0 commentaires