單元測試時,如何避免創建多餘的字符串?模擬參考對象
例如,字符串「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