Please use this unit test code, the former missed ToolRunner.run(...) in
the second test.
package org.apache.mahout.common;
import java.util.Map;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.util.ToolRunner;
import org.apache.mahout.common.AbstractJob;
import org.apache.mahout.math.MahoutTestCase;
public class AbstractJobTest extends MahoutTestCase {
private static class TestJob extends AbstractJob {
private String valueOfTestOption;
@Override
public int run(String[] args) throws Exception {
addOption("test", "t", "an option having a default value", "default");
Map<String,String> parsedArgs = parseArguments(args);
valueOfTestOption = parsedArgs.get("--test");
return 0;
}
public String getValueOfTestOption() {
return valueOfTestOption;
}
}
private TestJob job;
private Configuration conf;
@Override
protected void setUp() throws Exception {
super.setUp();
job = new TestJob();
conf = new Configuration();
job.setConf(conf);
}
public void testValueForOption() throws Exception {
ToolRunner.run(job, new String[] { "--test", "value" });
assertEquals("value", job.getValueOfTestOption());
}
public void testDefaultValueForOption() throws Exception {
ToolRunner.run(job, new String[] {});
assertEquals("default", job.getValueOfTestOption());
}
}