加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 使用Mockito测试返回的字符串是否具有一定的长度

发布时间:2020-12-15 05:09:49 所属栏目:Java 来源:网络整理
导读:有一个方法有几个返回String的参数.在许多情况下,该方法抛出异常.当它返回时,String的内容取决于插入计算机的某个USB加密狗的参数和配置.返回的String的长度完全取决于参数. 我想知道的是如何使用Mockito(我是新手)进行单元测试.当返回的String具有一定长度
有一个方法有几个返回String的参数.在许多情况下,该方法抛出异常.当它返回时,String的内容取决于插入计算机的某个USB加密狗的参数和配置.返回的String的长度完全取决于参数.

我想知道的是如何使用Mockito(我是新手)进行单元测试.当返回的String具有一定长度时,其中一个测试方法应该成功完成.

如果您需要更多信息,请告诉我.

解决方法

有这样的界面:

interface Foo {
    void method(String s);
}

一个想法是使用正则表达式匹配:

final Foo mock = mock(Foo.class);
mock.method("abc");
verify(mock).method(matches(".{3}"));

不幸的是,字符串长度没有内置的匹配器(应该有!),但是编写自定义的很容易:

private static String hasSize(final int size) {
    return argThat(new ArgumentMatcher<String>() {
        @Override
        public boolean matches(Object argument) {
            return argument.toString().length() == size;
        }
    });
}

现在只需调用静态方法:

verify(mock).method(hasSize(4));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读