单元测试时,如何避免创建多余的字符串?模拟参考对象
例如,字符串“SERIALIZED”似乎有点不必要和任意。你会用什么来代替?
Object update=new Object();
FileWriter writer=mock(FileWriter.class);
Serializer serializer=mock(Serializer.class);
when(cache.getWriter(update)).thenReturn(writer);
when(serializer.serialize(update)).thenReturn("SERIALIZED");
FileRecorder recorder=new FileRecorder(serializer);
recorder.receive(update);
verify(writer).write("SERIALIZED");
我没有看到这样的问题。你不是在单元测试运行时创建字符串,它要么进入String字符串池,所以它只创建一次并且总是被重用。 – 2012-02-05 20:03:24
我不太明白这个问题。你可以把两个“SERIALIZED”变成一个常量或局部变量来保存重复? – DNA 2012-02-05 20:05:45
你可以使用anyString()吗? – yadab 2012-02-05 20:55:22