如何解决当我们在java中使用apache-cli命令行时如何编写测试用例
我下面的Java代码
public class CO2_calc {
public static void main(String[] args) {
CommandLineParser parser = new DefaultParser();
Options options = Handler.prepareOptions();
for(int i = 0; i<args.length; i++) {
System.out.println(args[i]);
}
try {
CommandLine commandLine = parser.parse(Handler.prepareOptions(),args);
//Getting the argument
String vehicle = commandLine.getoptionValue(Handler.METHOD);
Double distance = ((Number) commandLine.getParsedOptionValue(Handler.disTANCE)).doubleValue();
String distanceUnit = "km";
if(commandLine.hasOption(Handler.disTANCE_UNIT)) {
distanceUnit = commandLine.getoptionValue(Handler.disTANCE_UNIT);
}
String outputUnit=null;
if(commandLine.hasOption(Handler.OUTPUT_UNIT)) {
outputUnit = commandLine.getoptionValue(Handler.OUTPUT_UNIT);
}
Handler.applyArguments(vehicle,distance,distanceUnit,outputUnit);
} catch (ParseException ex) {
System.out.println(ex.getMessage());
new Helpformatter().printHelp("co2-equivalent-calculator",options);
}
}
public String calculateEmission(double factor,double distance,String distanceUnit,String outputUnit) {
if("m".equals(distanceUnit)) {
distance = convertMeterToKilometer(distance);
}
Double totalAmount = (factor*distance);
//System.out.println(totalAmount);
if ((totalAmount < 1000) && (outputUnit!=null) && ("kg".equals(outputUnit))) {
totalAmount = convertGramToKilogram(totalAmount);
}
else if ((totalAmount < 1000) && (outputUnit==null)) {
outputUnit = "g";
}
else if((totalAmount>1000) && (outputUnit!=null) && ("m".equals(distanceUnit)) && ("kg".equals(outputUnit))) {
outputUnit = "kg";
totalAmount = convertGramToKilogram(totalAmount);
}
else if((totalAmount>1000) && (outputUnit==null) && ("m".equals(distanceUnit))) {
outputUnit = "g";
totalAmount = convertGramToKilogram(totalAmount);
}
else if((totalAmount>1000) && (outputUnit==null)) {
outputUnit="kg";
totalAmount = convertGramToKilogram(totalAmount);
}
else if(outputUnit == null) {
outputUnit="kg";
}
DecimalFormat df = new DecimalFormat("#.#");
StringBuilder result = new StringBuilder();
result.append(df.format(totalAmount));
result.append(outputUnit);
return result.toString();
}
public double convertGramToKilogram(double value) {
return (value/1000);
}
public double convertKilogramToGram(double value) {
return (value*1000);
}
public double convertMeterToKilometer(double dist) {
return (dist/1000);
}
public double convertKilometerToMeter(double dist) {
return (dist*1000);
}
}
我有一个 CO2_calc
类,现在我想为这个类创建测试用例。至于我第一次使用 Java 的命令行参数,我不知道为 main function
和 calculateEmission()
创建测试用例,因为它从命令行参数中获取参数并执行任务。
我的测试用例尚未实现-
class CO2_calcTest {
@BeforeEach
void setUp() throws Exception {
}
@Test
final void testCalculateEmission() {
fail("Not yet implemented"); // Todo
}
}
有人可以指导我解决这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。