Как подавить предупреждения об устаревании при тестировании устаревших функций Scala? - PullRequest
0 голосов
/ 16 октября 2018

Предположим, у меня есть библиотека, которая содержит устаревшую функцию и предпочтительную функцию:

object MyLib {
  def preferredFunction() = ()
  @deprecated("Use preferredFunction instead", "1.0") def deprecatedFunction() = ()
}

Я хочу протестировать preferredFunction и deprecatedFunction в ScalaTest:

class MyLibSpec extends FreeSpec with Matchers {
  "preferred function" in {
    MyLib.preferredFunction() should be(())
  }
  "deprecated function" in {
    MyLib.deprecatedFunction() should be(())
  }
}

Однако предупреждение об устаревании отображается в MyLib.deprecatedFunction().

Как избежать предупреждения?

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Просто устарел класс, который отражательно отражается на испытательном стенде.

scala> @deprecated("","") def f() = ()
f: ()Unit

scala> @deprecated("","") class C { f() }
defined class C

scala> f()
<console>:13: warning: method f is deprecated:
       f()
       ^
0 голосов
/ 16 октября 2018

Scala не поддерживает это, см. https://groups.google.com/forum/#!topic/scala-internals/LsycMcEkXiA

Однако есть упомянутый плагин:

https://github.com/ghik/silencer

Я не использовал его - поэтому яЯ не уверен, что это работает для вашего случая.

...