拨打@TestFactory
Stream<DynamicTest> shouldReturnGoodResultsForPositiveNumbers(){ // look at method name lol
List<Integer> inputs = new ArrayList<>(Arrays.asList(2, 15));
List<String> outputs = new ArrayList<>(Arrays.asList("10", "1111"));
return inputs.stream().map(number -> DynamicTest.dynamicTest("Test positive " + number, () -> {
int idx = inputs.indexOf(number);
decimal.setNumber(inputs.get(idx));
assertEquals(outputs.get(idx), decimal.toBinary());
}));
}
是否安全? test(s2)
的记忆会被释放吗?如果没有,有什么建议吗?
test(s1)
答案 0 :(得分:3)
这一行
global = nlohmann::json::parse(js_string);
重新分配全局以获得新值。唯一可能泄漏任何内容的方法是nlohmann::json
的赋值运算符是否有问题。
我怀疑情况并非如此。你不必担心泄漏。
答案 1 :(得分:1)
如果test(s1);
,test(s2);
或work_loop
抛出异常,则可以终止进程而不调用global
的析构函数(对于两个字符串也是如此),因为有没有异常处理。这无法真正导致内存泄漏,因为系统将回收进程内存,但是如果清理涉及其他操作(例如删除临时文件或关闭网络连接),则可能会导致实际问题。