如何在Java中测试Getters和Setters?

问题描述 投票:0回答:1

所以,我在做一个编码作业,我陷入了僵局。这是教授给我的反馈,之后我会附上我一直在做的代码,进一步解释这个问题。

谢谢你的帮助 看起来不错! 我唯一的建议是在你的代码中加入高级注释,并在你的MainTeamClass.java程序中的Team对象上测试set()方法,以确保set()突变器方法按照预期工作。用一个测试值调用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;
     }   
  } 
}

还有Main类

 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()方法?谁能解释一下怎么做,还能提供一个例子吗?本周上课的章节里没有这个内容,我也在网上搜索了一些帮助,但没有结果,所以我希望能得到尽可能多的反馈。先谢谢你了!

java testing getter-setter getter setter
1个回答
1
投票

"用测试值调用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!");
}

0
投票

你可以用不同的方法,其中一个是 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";
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.