为什么在Mockito中使用doReturn无法获得价值

亚历克斯

我在模拟服务中有一种方法,

def whenDynamoDBActionBlacklist(newlist: List[String]) = {
    doReturn(newlist).when(service).Blacklist
  }

并希望通过使用进行测试

val list = mocks.whenDynamoDBActionBlacklist(List("333:avd"))

但我无法获取值,获取了nullPointerException,有人可以帮助我吗?谢谢。

马里奥·加里奇(Mario Galic)

我相信您会混淆模拟设置和模拟执行之间的区别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中也应用了相同的概念

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么无法使用AuthGuard的异步功能获得存储的价值?

来自分类Dev

为什么预先检查的单选按钮无法获得价值?

来自分类Dev

当我要求标题而不是价值时,为什么报告“无法获得价值”?

来自分类Dev

为什么我无法在MySQL中使用不同的行获得结果?

来自分类Dev

在Python中使用保存动画时,为什么无法获得视频?

来自分类Dev

为什么在 Django 中使用 RadioSelect 表单时无法获得单选按钮?

来自分类Dev

为什么我无法从AngularJS甚至纯JavaScript中获得__RequestVerificationToken的价值?

来自分类Dev

为什么我无法从Angular10的下拉菜单中获得价值?

来自分类Dev

无法理解为什么分配后获得垃圾价值

来自分类Dev

为什么在使用Realm时通过KVC而不是通过使用属性来获得价值?

来自分类Dev

无法使用Javascript获得textarea的价值

来自分类Dev

使用参数,但我无法获得价值

来自分类Dev

无法使用XML从Descendants()或Element()获得价值

来自分类Dev

为什么我无法在Jquery插件中使用FormData从tinymce编辑器中获得textarea的值?

来自分类Dev

为什么正则表达式使用Java中的“匹配”两次获得价值?

来自分类Dev

为什么takeWhile无法交付价值

来自分类Dev

为什么我无法使用python Popen从PHP获得输出

来自分类Dev

为什么我无法使用python Popen从PHP获得输出

来自分类Dev

VelocityContext无法获得价值

来自分类Dev

无法从工厂获得价值

来自分类Dev

GetElementById无法获得价值

来自分类Dev

无法从RadioButtons获得价值

来自分类Dev

Java:无法获得价值

来自分类Dev

无法从Edittext获得价值

来自分类Dev

无法从RadioButtons获得价值

来自分类Dev

无法获得会话价值

来自分类Dev

无法获得Cookie的价值

来自分类Dev

无法从 JsSuccess 获得价值

来自分类Dev

无法在Laravel中使用Ajax保存价值

Related 相关文章

  1. 1

    为什么无法使用AuthGuard的异步功能获得存储的价值?

  2. 2

    为什么预先检查的单选按钮无法获得价值?

  3. 3

    当我要求标题而不是价值时,为什么报告“无法获得价值”?

  4. 4

    为什么我无法在MySQL中使用不同的行获得结果?

  5. 5

    在Python中使用保存动画时,为什么无法获得视频?

  6. 6

    为什么在 Django 中使用 RadioSelect 表单时无法获得单选按钮?

  7. 7

    为什么我无法从AngularJS甚至纯JavaScript中获得__RequestVerificationToken的价值?

  8. 8

    为什么我无法从Angular10的下拉菜单中获得价值?

  9. 9

    无法理解为什么分配后获得垃圾价值

  10. 10

    为什么在使用Realm时通过KVC而不是通过使用属性来获得价值?

  11. 11

    无法使用Javascript获得textarea的价值

  12. 12

    使用参数,但我无法获得价值

  13. 13

    无法使用XML从Descendants()或Element()获得价值

  14. 14

    为什么我无法在Jquery插件中使用FormData从tinymce编辑器中获得textarea的值?

  15. 15

    为什么正则表达式使用Java中的“匹配”两次获得价值?

  16. 16

    为什么takeWhile无法交付价值

  17. 17

    为什么我无法使用python Popen从PHP获得输出

  18. 18

    为什么我无法使用python Popen从PHP获得输出

  19. 19

    VelocityContext无法获得价值

  20. 20

    无法从工厂获得价值

  21. 21

    GetElementById无法获得价值

  22. 22

    无法从RadioButtons获得价值

  23. 23

    Java:无法获得价值

  24. 24

    无法从Edittext获得价值

  25. 25

    无法从RadioButtons获得价值

  26. 26

    无法获得会话价值

  27. 27

    无法获得Cookie的价值

  28. 28

    无法从 JsSuccess 获得价值

  29. 29

    无法在Laravel中使用Ajax保存价值

热门标签

归档