我有这个方法
void sort(InputStream in, OutputStream out, Comparator<?> comparator) throws IOException;
根据提供的比较器对输出流(相同格式)中的输入流(XML数据)进行排序。
由于我是Junit的初学者,你会如何测试这种方法?如果你能提供一些代码片段会很棒。
答案 0 :(得分:1)
一般测试公众可观察行为的单元测试
在你的情况下,它是与两个流的交互。
这可能是这样的:
public class StreamsTest {
InputStream inputStream;
OutputStream outputStream;
@Test
public void sort_givenShuffledXml_returnsSortedXml() {
// arrange
YourClassUnderTest cut = new YourClassUnderTest();
Comparator<?> comparator = new YourRealComparatorImpl();
inputStream = new ByteArrayInputStream("unsortedXML".getBytes());
outputStream = new ByteArrayOutputStream();
// act
cut.sort(inputStream, outputStream, comparator);
//assert
Assert.assertThat(outputStream.toString(),CoreMatchers.equalTo("sortedXml"));
}
}