【问题标题】:JUnit testing Hadoop WritableJUnit 测试 Hadoop 可写
【发布时间】:2012-02-10 22:32:10
【问题描述】:

我正在编写一些自定义的 Hadoop Writable 类。我想用 JUnit 来测试 readFields() 和 write() 函数。

有没有办法将 write(DataOutput out) 重定向到 readFields(DataInput in)?我想做类似的事情:

CustomWritable writeable1 = new CustomWritable();
CustomWritable writeable2 = new CustomWritable();

//build writable1 with some data.
DataInputAndOutput io = ...

writeable1.write(io);
writable2.read(io);

assertEquals(writable1,writable2);

想法?

【问题讨论】:

    标签: java hadoop


    【解决方案1】:

    最终使用 ByteArrayOutputStream byteout = ... 和 ByteArrayInputStream(byteout.toByteArray()) 来完成此操作。

    我尝试使用:

    http://docs.oracle.com/javase/7/docs/api/java/io/PipedOutputStream.html http://docs.oracle.com/javase/7/docs/api/java/io/PipedInputStream.html

    但是发现如果从同一个线程运行这些有时会死锁。

    【讨论】:

    • ByteArrayOutputStream 没有实现 DataOutput - 你做了一些转换吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-14
    • 1970-01-01
    • 2010-10-31
    • 2018-11-27
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多