Syed Sayem blog

Java 8 Lambda assertion

In this short post I will demonstrate a simple example how one can utilize the power of Java 8 and lambda expressions to test.

public class App {

    @Test
    public void successfulTestWithMethodReferenceSyntax() {
        Text text = new Text();
        text.verify("Expected value", AssertUtil::assertEquals);
    }

    @Test
    public void failTestWithMethodReferenceSyntax() {
        Text text = new Text();
        text.verify("Unexpected value", AssertUtil::assertNotEquals);
    }

    @Test
    public void successfulTestWithLambdaSyntax() {
        Text text = new Text();
        text.verify("Expected value", (actual, expected) ->
                AssertUtil.assertEquals(actual, expected));
    }

    @Test
    public void failTestWithLambdaSyntax() {
        Text text = new Text();
        text.verify("Unexpected value", (actual, expected) ->
                AssertUtil.assertNotEquals(actual, expected));
    }
}
public class Text {

    public void verify(String expected,
                       BiConsumer<String, String> function){
         function.accept(expected, "Expected value");
    }
}
public class AssertUtil {

    public static void assertEquals(String actual, String expected) {
        org.testng.Assert.assertEquals(actual, expected);
    }

    public static void assertNotEquals(String actual, String expected) {
        org.testng.Assert.assertNotEquals(actual, expected);
    }
}
comments powered by Disqus