用java测试函数输出的简明方法是什么?

用java测试函数输出的简明方法是什么?,java,Java,有没有一种简单的方法可以将可测试函数调用链接到一个简洁的块中,以便在测试结果为正时运行并增加分数?下面是要测试的类 public class Weather{ public Weather(float temp, int day, int month, int year){} public float getTemp(){} public void setCelsius(){} public void setFahrenheit(){} public boolean isCe

有没有一种简单的方法可以将可测试函数调用链接到一个简洁的块中,以便在测试结果为正时运行并增加分数?下面是要测试的类

public class Weather{
  public Weather(float temp, int day, int month, int year){}
  public float getTemp(){}
  public void setCelsius(){}
  public void setFahrenheit(){}
  public boolean isCelsius(){}
  public String toString(){}

}
典型的测试用例包括设置摄氏度、华氏度、获取值以及匹配字符串

Weather testMe = new Weather(100.6f, 31, 7, 1997);
if(testMe.toString().equals("July 31, 1997. Temperature is 100.60 C.")) { score+=1}
if(testMe.getTemp() == 100.6f) {score+=1}
if(testMe.isCelcius()) {score+=1;}
testMe.setFahrenheit();
if(testMe.toString().equals("July 31, 1997. Temperature is 213.08 F.")) { score+=1}
if(testMe.getTemp() == 213.08f) {score+=1}
if(!testMe.isCelcius()) {score+=1;}
testMe.setCelcius();
if(testMe.isCelcius()) {score+=1;}

我可以一遍又一遍地重复这一点,但是这个测试可以缩短吗?

我认为评分系统不是衡量代码正确性的正确方法。一个测试应该只有两种状态。通过或失败。所以通过得分你不能达到这个目的

您可以使用JUnit来测试代码。使用JUnit编写所有可能的测试用例并运行测试。然后您将知道您的代码是通过还是失败


要开始学习JUnit,你可以学习一些基本的教程,比如

除了增加分数外,实际上没有太多“额外”的样板文件。如果这正是您试图避免的,您可以为此制定一个简单的方法:

int score = 0;

void test(boolean condition) {
    if (condition) {
        score++;
    }
}
然后在您的评分方法中调用

test(testMe.toString().equals("July 31, 1997. Temperature is 100.60 C."));
test(testMe.getTemp() == 100.6f);
test(testMe.isCelcius());
...

使用提供assert()函数的库。如果你认真对待使用Java,那么学习使用JUnit这样的库是值得的,这比使用你自己的bc的IDE支持要好得多。尽量不要编写一行if语句,因为它们不能使代码清晰。我想知道你是否可以编写一个JUnit runner来跟踪分数。也许你甚至可以用
@Score(value=1)