gpt4 book ai didi

java - 用 "\n"替换新行并且可以进行单元测试吗?

转载 作者:行者123 更新时间:2023-12-02 12:11:15 25 4
gpt4 key购买 nike

我有一段代码,如下所示:

 String myJsonString = mapper.writeValueAsString(object).replaceAll("(\\r|\\n|\\r\\n)+", "\\\\n") + "\n";

现在,该代码位于“可调用” block 内 - 因此,在单元测试时毫无用处。

我知道我可以做一些类似将正则表达式拉入模式类的事情...然后以这种方式匹配它 - 但我想获得一些关于这里最佳实践的输入 - 我没有正如我所希望的那样,我进行了大量的单元测试,而且我知道总有更好的方法来完成这些事情。

实际的代码块,以便更好地引用

    Callable<Boolean> doStuff = new Callable<Boolean>() {
public Boolean call() throws Exception {
String json = mapper.writeValueAsString(object).replaceAll("(\\r|\\n|\\r\\n)+", "\\\\n") + "\n";
// TODO : Add functionality which adds this string to a list.
return true;
}
};

最佳答案

将代码分解为(可单元测试的)方法:

Callable<Boolean> doStuff = new Callable<Boolean>() {
public Boolean call() throws Exception {
String json = escapeNewlines(mapper.writeValueAsString(object)) + "\n";
// TODO : Add functionality which adds this string to a list.
return true;
}
};

// Unit test this utility method
public static String escapeNewlines(String str) {
return str.replaceAll("\\R+", "\\\\n"); // Note use of \R
}

关于java - 用 "\n"替换新行并且可以进行单元测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46534218/

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