Полагаю, вы путаете разницу между макетом setup и макетом выполнение . whenDynamoDBActionBlacklist
на самом деле не возвращает значение, а просто указывает ответы для заглушенных методов. Рассмотрим следующий пример
import org.mockito.{ArgumentMatchersSugar, IdiomaticMockito}
import org.scalatest.flatspec.AnyFlatSpec
import org.scalatest.matchers.should.Matchers
class MockitoScalaExampleSpec extends AnyFlatSpec with Matchers with IdiomaticMockito with ArgumentMatchersSugar {
"MockitoScalaExample" should "demonstrated difference between mock setup and mock execution" in {
// system under test
trait MyService {
def blacklist: List[String]
}
// initialise mock of the system under test
val serviceMock = mock[MyService]
// specify behaviour of the mock by defining how should stubbed methods respond
serviceMock.blacklist returns List("mocked!")
// actually execute the mocked system under test
val result = serviceMock.blacklist
// assert on the result
result should be(List("mocked!"))
}
}
Ключ к пониманию:
serviceMock.blacklist returns List("mocked!")
еще не возвращает List("mocked!")
, но объявляет, что должно произойти, когда мы вызываем aMock.blacklist
.
Обратите внимание, что в примере используется mockito- scala, но в ванильном Mockito .
применяются те же понятия.