如何在Java中测试Getters和Setters



所以,我正在进行一项编码任务,但我陷入僵局。以下是我从教授那里收到的反馈,之后,我将附上我一直在研究的代码,并进一步解释这个问题:

感谢您的联系。它看起来不错!我唯一建议的是在整个代码中添加高级注释,并在MainTeamClass.java程序中的Team对象上测试set((方法,以确保set((mutator方法按预期工作。用测试值调用set((方法,然后调用get((方法查看它是否是相同的值

这是代码的副本:

public class Team 
{
private String team;   
private int points;   
private double average;
public Team()   
{
team = " Default";   
}   
public Team(String startTeam, int startPoints, double startAverage)   
{
team = startTeam;
points = startPoints;
average = startAverage;   
}   
public String getTeam()   
{
return team;   
}   
public int getPoints()   
{
return points;   
}   
public double getAverage()   
{
return average;   
}   
public void setTeam(String newTeam)   
{
team = newTeam;   
}   
public void setPoints(int newPoints)   
{
if (newPoints >= 0)
{
points = newPoints;
}   
}   
public void setAverage(double newAverage)   
{
if (newAverage >= 0.0)
{
average = newAverage;
}   
} 
}

主类:

public class MainTeamClass {   public static void main(String[] args) 
{
Team sanfran = new Team();
String sanfranTeam = sanfran.getTeam();
int sanfranPoints = sanfran.getPoints();
double sanfranAverage = sanfran.getAverage();
System.out.println(" The team name is:" + sanfran.getTeam()
+ "n The number of points earned equals " + sanfran.getPoints()
+ "n The average season score is:" + sanfran.getAverage());
Team cowboys = new Team("Dallas Cowboys", 36, 43.5);
String cowboysTeam = cowboys.getTeam();
int cowboysPoints = cowboys.getPoints();
double cowboysAverage = cowboys.getAverage();
System.out.println("n The team name is: " + cowboys.getTeam()
+ "n The number of points earned equals " + cowboys.getPoints()
+ "n The average season score is: " + cowboys.getAverage());   } }

基于这段代码,我将如何测试set((方法和get((方法?有人能解释一下如何做到这一点,并提供一个例子吗?这不在本周课堂上的章节中,我在网上搜索了一些帮助,但没有用,所以我希望尽可能多地提供反馈。提前谢谢!

"用测试值调用set((方法,然后调用get((方法查看它是否是相同的值。">:表示传递给set方法的值与必须从get方法返回的值相同,类似于以下内容:

Team team = new Team ();
String test = "stringForTest";
team.setTeam(test);
if(!team.getTeam().equals(test)) {
System.out.println("Problem with set/get method!");
}

您可以使用不同的方法,其中一种是assertion,并使用java -ea <program_name>运行启用断言

public class MainTeamClass {  
public static void main(String[] args) {     
Team cowboys = new Team();
cowboys.setTeam("Dallas Cowboys");
String cowboysTeam = cowboys.getTeam();
assert cowboysTeam == "Dallas Cowboys" : "cowboysTeam Not valid";
cowboys.setPoints(36);
int cowboysPoints = cowboys.getPoints();
assert cowboysPoints == 36 : "cowboysPoints Not valid";
cowboys.setAverage(43.5);
double cowboysAverage = cowboys.getAverage();
assert cowboysAverage == 43.5 : "cowboysAverage Not valid";
}
}

最新更新