Вот код, который я пытаюсь запустить:
import org.specs2.mock.Mockito
import org.specs2.mutable.Specification
import org.specs2.specification.Scope
import akka.event.LoggingAdapter
class MySpec extends Specification with Mockito {
"Something" should {
"do something" in new Scope {
val logger = mock[LoggingAdapter]
val myVar = new MyClassTakingLogger(logger)
myVar.doSth()
there was no(logger).error(any[Exception], "my err msg")
}
}
}
При запуске этого я получаю следующую ошибку:
[error] org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
[error] Invalid use of argument matchers!
[error] 2 matchers expected, 1 recorded:
[error] -> at org.specs2.mock.mockito.MockitoMatchers$class.any(MockitoMatchers.scala:47)
[error]
[error] This exception may occur if matchers are combined with raw values:
[error] //incorrect:
[error] someMethod(anyObject(), "raw String");
[error] When using matchers, all arguments have to be provided by matchers.
[error] For example:
[error] //correct:
[error] someMethod(anyObject(), eq("String by matcher"));
Что имело бы большой смысл, но ни eq("my err msg")
, ни equals("my err msg")
не работают, так как я получаю сообщение об ошибке. Что мне не хватает?
eq("my err msg")
требуется для этого случая, и я подозреваю, что ошибка, которую вы получаете при его использовании, является другой ошибкой, возможно, связанной с вашим фактическим тестом. Не могли бы вы вставить ошибку, которую вы получаете при использованииeq
? - person Jeff Bowman   schedule 07.09.2015[error] (template: String,arg1: Any)Unit <and> [error] (cause: Throwable,message: String)Unit [error] cannot be applied to (Exception, Boolean) [error] there was no(logger).error(any[Exception], eq("my err msg"))
- person eddyP23   schedule 08.09.2015