用“\ n”替换新行并使其可单元测试?

时间:2017-10-02 21:48:33

标签: java unit-testing junit

我有一段看起来像这样的代码:

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

现在,该代码存在于“可调用”块中 - 因此,在单元测试时无用。

我知道我可以按照将正则表达式拉入Pattern类的方式做一些事情......然后以这种方式匹配 - 但我想得到一些关于最佳实践的输入 - 我没有我希望拥有多少单元测试,我知道总有更好的方法可以做这些事情。

实际的代码块,以便更好地参考

    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;
        }
    };

1 个答案:

答案 0 :(得分:1)

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

protect_from_forgery with: :null_session,
    if: Proc.new { |c| c.request.format =~ %r{application/json} }