如何在java中为类创建两个不同的比较条件?

时间:2016-05-04 20:06:56

标签: java unit-testing sorting testing compare

我有一个分配来创建一个包含两个字段(名称,大写)的Country类,这两个字段首先必须根据名称与另一个Country进行比较。之后我没有改变任何东西,我必须做另一个只关心比较资本的测试。如何在同一个班级做两种不同的比较方法? 这是我到目前为止所做的:

国家/地区类:

public class Country implements Comparable {
    private String name;
    private String capital;

    public Country(String name, String capital) {
        this.name = name;
        this.capital = capital;
    }

    public String getName() {
        return name;
    }

    public String getCapital() {
        return capital;
    }

    @Override
    public String toString() {
        return "Country{" +
                "name='" + name + '\'' +
                ", capital='" + capital + '\'' +
                '}';
    }

    public static final Comparator<Country> nameComparator = (country, secondCountry) -> country.getName().compareTo(secondCountry.getName());

    public static final Comparator<Country> capitalComparator = (country, secondCountry) -> country.getCapital().compareTo(secondCountry.getCapital());


    @Override
    public int compareTo(Object o) {
        return 0;
    }
}

检查国家/地区是否正确排序的方法:

public boolean isSorted(List<Country> countryList) {
        boolean sorted = Ordering.natural().isOrdered(countryList);
        return sorted;
    }

我的测试:

  @org.junit.Test
    public void testIfTheListIsSorted () {
        CountryDAO countryDAO = new CountryDAO();
        List<Country> countryList = countryDAO.getCountryList();
        Collections.sort(countryList, Country.nameComparator);
        assertTrue(countryDAO.isSorted(countryList));

    }

我需要改变什么来比较我的选择,无论是名字还是资本?两种方式都是可测试的。提前谢谢..

0 个答案:

没有答案