By
using 'comparesEqualTo' method, you can create a matcher of Comparable object
that matches when the examined object is equal to the specified object.
Ex
assertThat("2
== ", 2, comparesEqualTo(2));
Find
below working application.
TestApp.java
package com.sample.tests; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.comparesEqualTo; import org.junit.Test; public class TestApp { @Test public void testmethod() { assertThat("2 == ", 2, comparesEqualTo(2)); } }
As
you see the signature of comparesEqualTo method, you can call this method on
any Comparable instances.
public
static <T extends java.lang.Comparable<T>>
org.hamcrest.Matcher<T> comparesEqualTo(T value)
Let
us try to compare whether two employees are equal or not based on their
experience in the organization.
public
class Employee implements Comparable<Employee> {
....
....
public int compareTo(Employee emp) {
if (emp == null)
return 1;
return
this.experience.compareTo(emp.experience);
}
}
Since
Employee class is implementing Comparable interface, we can use comparesEqualTo
matcher to compare two employee objects.
Ex
Employee
emp1 = new Employee(1, "Krishna", 5.6);
Employee
emp2 = new Employee(2, "Chamu", 65.6);
assertThat("emp1
and emp2 must have same experience", emp1, comparesEqualTo(emp2));
Find
below working application.
Employee.java
package com.sample.model; public class Employee implements Comparable<Employee> { private int id; private String name; private Double experience; public Employee(int id, String name, Double experience) { this.id = id; this.name = name; this.experience = experience; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getExperience() { return experience; } public void setExperience(double experience) { this.experience = experience; } public int compareTo(Employee emp) { if (emp == null) return 1; return this.experience.compareTo(emp.experience); } }
TestApp.java
package com.sample.tests; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.comparesEqualTo; import org.junit.Test; import com.sample.model.Employee; public class TestApp { @Test public void testmethod() { Employee emp1 = new Employee(1, "Krishna", 5.6); Employee emp2 = new Employee(2, "Chamu", 65.6); assertThat("emp1 and emp2 must have same experience", emp1, comparesEqualTo(emp2)); } }
No comments:
Post a Comment