微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我们在java中使用apache-cli命令行时如何编写测试用例

如何解决当我们在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 functioncalculateEmission() 创建测试用例,因为它从命令行参数中获取参数并执行任务。

我的测试用例尚未实现-

class CO2_calcTest {

@BeforeEach
void setUp() throws Exception {
}

@Test
final void testCalculateEmission() {
    fail("Not yet implemented"); // Todo
  }
}

有人可以指导我解决这个问题吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。