添加多个断言时,我不断收到未使用的表达式,没有副作用

问题描述 投票:0回答:1

所以我曾经能够运行多个断言,但现在我不断收到警告“未使用的表达式没有副作用”。然而,每个断言本身都很好地通过了测试。我该如何解决这个问题? ` val 结果=boringService.transform(input)

val overview = result.openAccounts.head
overview.accountType shouldBe "CreditCard"

overview.totalBalance shouldBe SummaryMonetaryAmount(4000, 2, "GBP")
overview.totalLimit shouldBe SummaryMonetaryAmount(12000, 2, "GBP")
overview.totalUtilisation shouldBe Some(33)`

我不想返回整个响应,因为我想测试这些特定字段

scala testing intellij-idea functional-programming
1个回答
0
投票

这可能与编译器中用于检查未使用的纯表达式的新 linter 有关。

在实践中,这可以捕获很多错误,例如:

def foo(): Int =
  computeValue() // Unused value, probably a mistake.
  10

但是,与大多数 linter 一样,它无法真正了解所有内容的完整语义。在这种情况下,ScalaTest

assertions
看起来像纯值,但确实有副作用。因此,丢弃它们是有道理的。

如果您不想禁用整个 linter,最简单的修复方法就是将其配置为忽略这些:

// Disable Wnonunit-statement warnings related to ScalaTest Assertion.
Test / scalacOptions += "-Wconf:cat=other-pure-statement&msg=org.scalatest.Assertion:s",

将其添加到您的

build.sbt

的正确位置
© www.soinside.com 2019 - 2024. All rights reserved.