当前位置: 首页 > 知识库问答 >
问题:

如何为下面的java代码编写测试用例

萧韬
2023-03-14
public class CollectionUtils {
    public static <K, V> Map<K, V> createMap(Iterable<V> values, Function<V, K> keyFunction, boolean skipNullKeys) {
        Map<K, V> map = new HashMap<>();
        for (V value : values) {
            K key = keyFunction.apply(value);
            if (key != null || !skipNullKeys) {
                map.put(key, value);
            }
        }
        return map;
    }

共有1个答案

万博涛
2023-03-14

我会使用小而简单的数据。g.

List<Integer> values = Arrays.asList(1, null);
Function<Integer, String> toKey = String::valueOf;
Map<String, Integer> withNull = createMap(values, toKey, false);
Map<String, Integer> noNull = createMap(values, toKey, true);

然后可以使用map#sizemap#containskey(null-key)和...get("1“).equals(1)进行测试。

但是正如我在注释中提到的,如果您的函数可能对不同的值产生相同的键,那么您只有最后一个值,即E。g.函数 toKey=i->i%2 将只将01作为键(以及null-values的nullpointerexception),因此list values=arrays.aslist(1,3) 将生成一个映射,只有一个条目“1”->3

 类似资料:
  • 你好,我是java的新手,我对如何编写JUnit测试感到困惑,有人能帮忙吗? 任务说明: 当您将自动取款机(ATM)与银行卡一起使用时,您需要使用个人识别码(PIN)来访问您的帐户。如果用户在输入PIN码时失败三次以上,机器将阻止该卡。 假设用户的PIN是“1234”,编写一个程序,向用户索要PIN不超过三次,并执行以下操作: 如果用户输入了正确的号码,请打印一条消息,说明“您的PIN是正确的”,

  • 我能得到第二个和第三个条件的承保范围,但不能得到最后一个和第一个条件的承保范围。 下面这个是我的测试函数

  • hm包含员工的姓名和年龄。如何找到所有员工的姓名 我试过这样做 任何人都可以纠正我吗?

  • 您好,我是java新手,我对如何编写JUnit测试感到困惑,有人能帮我吗? 任务说明: 当您将自动取款机(ATM)与银行卡一起使用时,您需要使用个人识别码(PIN)来访问您的帐户。如果用户在输入PIN码时失败三次以上,机器将阻止该卡。 假设用户的PIN为“1234”,编写一个程序,要求用户输入PIN不超过三次,并执行以下操作: 如果用户输入了正确的号码,请打印一条消息,说明“您的PIN是正确的”,

  • 我不知道如何为这个程序编写JUnit测试。请帮忙。问题是 假设用户的个人识别码是“1234”,编写一个程序,向用户索要个人识别码不超过三次,并执行以下操作:如果用户输入正确的号码,打印一条消息说“您的个人识别码是正确的”,并结束程序... 如果用户输入了错误的号码,请打印一条消息,说明“您的PIN不正确”,如果您请求PIN的次数少于三次,请再次请求。如果用户三次输入错误的号码,请打印一条消息,说明

  • 问题内容: 我正在用Java编写一个应用程序,它将文件上传到AWS S3。该文件将通过参数而不是硬编码形式提供给应用程序。我想编写测试以确保文件实际上传到S3。该测试将在TDD的代码之前编写。(我实际上已经编写了代码,但我想将TDD实践作为习惯养成我所有的习惯) 我将如何去做呢?我将使用JUnit,因为这是我最熟悉的。 在此先感谢您的帮助。 问题答案: 实际的上传和进行的测试是 集成测试的 一部分