gpt4 book ai didi

java - 为什么 Mockito RETURNS_DEFAULT 不返回默认字符串?

转载 作者:搜寻专家 更新时间:2023-11-01 01:01:16 25 4
gpt4 key购买 nike

在以下示例中(mockito 1.10.19):

    MyClass myClass = Mockito.mock(MyClass .class, RETURNS_DEFAULTS);
String s = myClass.getName();

为什么这会导致 s == null 而不是空字符串?

它确实为 ReturnsEmptyValues 中的字符串 promise 了 null .但是返回 "" 似乎很明显,我想知道是否有理由不这样做。

编辑:将版本从 1.8 更新到 1.10.19,因为 1.8 不再有可用的文档。

最佳答案

来自您发布的链接;

Default answer of every Mockito mock.

  • Returns appropriate primitive for primitive-returning methods
  • Returns consistent values for primitive wrapper classes (e.g. int-returning method retuns 0 and Integer-returning method returns 0, too)
  • Returns empty collection for collection-returning methods (works for most commonly used collection types)
  • Returns description of mock for toString() method
  • Returns null for everything else

来自常见问题解答:

模拟默认返回什么值?

In order to be transparent and unobtrusive all Mockito mocks by default return 'nice' values. For example: zeros, falseys, empty collections or nulls.

这样做可能是为了与为任何其他非集合、非原始 Wrapper 对象返回 null 的任何其他方法保持一致。

您始终可以实现自己的 Answer传递给 mock,后者为 String 返回方法返回空字符串。

关于java - 为什么 Mockito RETURNS_DEFAULT 不返回默认字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8604402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com