在我的 DoFo 的单元测试中,是否可以通过比较记录的序列化表示来断言输出与预期输出匹配?
我已经定义了一个使用默认 avro 编码器的记录,例如
@DefaultCoder(AvroCoder.class)
public class JobLogMessage {
@Nullable
public String projectId;
...
}
我正在为使用 DoFnTester 生成 JobLogMessage 列表的 DoFn 编写单元测试,例如
JogLogTransforms.ParsJsonDoFn doFn = new JogLogTransforms.ParsJsonDoFn();
DoFnTester<String, JobLogMessage> fnTester = DoFnTester.of(doFn);
List<JobLogMessage> outputs = fnTester.processBatch(inputs.toArray(new String[inputs.size()]));
我想验证输出是否与预期输出匹配。但是,如果我只使用 assertEquals,我认为除非我在 JobLogMessage 中显式重载 equals,否则它将使用不会正确评估相等性的 equals 方法。
我想做的是通过比较 AvroCoder 生成的序列化字节表示来比较预期的和实际的 JobLogMessage。Dataflow 是否为此提供任何便利方法?