By
using ‘lessThan’ method, you can create a matcher of Comparable object that
matches when the examined object is less than the specified value.
Ex
assertThat("1
is less than 2", 1, lessThan(2));
TestApp.java
package com.sample.tests; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.lessThan; import org.junit.Test; public class TestApp { @Test public void testmethod() { assertThat("1 is less than 2", 1, lessThan(2)); } }
As
you see the signature of lessThan method, you can call this method on any
Comparable instances.
public
static <T extends java.lang.Comparable<T>>
org.hamcrest.Matcher<T> lessThan(T value)
Let
us try to compare whether one employee is greater than 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 lessThan
matcher to compare two employee objects.
Ex
Employee
emp1 = new Employee(1, "Krishna", 5.6);
Employee
emp2 = new Employee(2, "Chamu", 7.7);
assertThat("emp1
must < emp1", emp1, lessThan(emp2));
Find
the 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.lessThan; 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", 7.7); assertThat("emp1 must < emp1", emp1, lessThan(emp2)); } }
No comments:
Post a Comment