当前位置: 首页 > 面试题库 >

如何对自定义的RecordReader和InputFormat类进行单元测试?

牛骞仕
2023-03-14
问题内容

我已经开发了一种map-reduce程序。我写了习俗RecordReaderInputFormat课程。

我正在使用mapper和reducer MR Unit并对其Mockito进行单元测试。

我想知道如何对定制RecordReaderInputFormat类进行单元测试?测试这些类的最优选方法是什么?


问题答案:

答案中示例代码的经过编译和某种程度上的测

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.mapreduce.InputFormat;
import org.apache.hadoop.mapreduce.RecordReader;
import org.apache.hadoop.mapreduce.TaskAttemptContext;
import org.apache.hadoop.mapreduce.TaskAttemptID;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
import org.apache.hadoop.mapreduce.task.TaskAttemptContextImpl;
import org.apache.hadoop.util.ReflectionUtils;
import java.io.File;

Configuration conf = new Configuration(false);
conf.set("fs.default.name", "file:///");

File testFile = new File("path/to/file");
Path path = new Path(testFile.getAbsoluteFile().toURI());
FileSplit split = new FileSplit(path, 0, testFile.length(), null);

InputFormat inputFormat = ReflectionUtils.newInstance(MyInputFormat.class, conf);
TaskAttemptContext context = new TaskAttemptContextImpl(conf, new TaskAttemptID());
RecordReader reader = inputFormat.createRecordReader(split, context);

reader.initialize(split, context);


 类似资料:
  • 我编写了以下来让Jackson将一个数组的整数序列化为JSON: 此处使用该类: 我想测试序列化程序的行为,并得出以下结论: 但是,不向写入任何内容。我做错了什么?

  • 我正在寻找有关如何改进当前测试类(以下示例)的设计的建议,该类依赖于具有自定义配置的。我通常使用构造函数注入来注入一个在整个应用程序中一致的HttpClient,但是,因为这是在类库中,所以我不能依赖库的使用者来正确设置。 null 这个设置对我来说似乎相当复杂,我希望有人能提出一个改进,但我知道这可能是相当主观的,所以如果有任何既定的模式或设计规则要遵循在这种情况下,我会非常感谢听到他们。 我包

  • 问题内容: 如何在单元测试中测试 hashCode()函数? 问题答案: 每当我覆盖equals和hash代码时,我都会按照Joshua Bloch在“ Effective Java”第3章中的建议编写单元测试。我确保equals和hash代码是自反的,对称的和可传递的。我还确保“不等于”对所有数据成员均正常工作。 当我检查对equals的调用时,我还要确保hashCode的行为符合预期。像这样:

  • 我已经为我的应用程序编写了自定义的JsonSerializer和JsonDeserializer。现在我想为它们编写一些单元测试。

  • 我已经创建了一个自定义弹性搜索客户端。我需要在各种功能上部署单元测试。我该怎么做呢? 下面是我的客户提供的一个方法。我应该如何在这里部署单元测试? 我该如何着手做这件事呢?

  • 问题内容: 我已Spring Boot启用基本身份验证的应用程序。从数据库消耗。为了进行单元测试,我想对其进行模拟,以便从其他地方使用数据。 我该怎么做? 我的问题不是如何模拟自身,而是如何模拟使用它来通过基本身份验证测试Controller的方式。 以下是我的SpringSecurity配置: 总之,我怎么能嘲笑UserServiceDetails到SpringSecurity配置,所以我能单元