java-assertj: Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
(Vytvorená stránka „{{DISPLAYTITLE:AssertJ}} Knižnica AssertJ poskytuje krajšie asserty pre automatické testy. Napríklad: {|border="1" cellspacing="0" cellpadding="2" ! JUnit ! Assert…“) |
|||
Riadok 28: | Riadok 28: | ||
.doesNotContain("abc"); | .doesNotContain("abc"); | ||
|} | |} | ||
+ | |||
+ | == Asserty pre vlastné typy == | ||
+ | |||
+ | Máme napríklad takúto triedu: | ||
+ | |||
+ | public record Position(int x, int y) {} | ||
+ | |||
+ | Vytvoríme pre ňu assert: | ||
+ | |||
+ | public class PositionAssert extends AbstractAssert<PositionAssert, Position> { | ||
+ | |||
+ | protected PositionAssert(Position actual) { | ||
+ | super(actual, PositionAssert.class); | ||
+ | } | ||
+ | |||
+ | public PositionAssert hasX(int expectedX) { | ||
+ | isNotNull(); | ||
+ | if (actual.x != expectedX) { | ||
+ | failWithMessage("Expected X %d but was %d", expectedX, actual.x); | ||
+ | } | ||
+ | return this; | ||
+ | } | ||
+ | |||
+ | public PositionAssert hasY(int expectedY) { | ||
+ | isNotNull(); | ||
+ | if (actual.y != expectedY) { | ||
+ | failWithMessage("Expected Y %d but was %d", expectedY, actual.y); | ||
+ | } | ||
+ | return this; | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | Pridáme statickú funkciu na elegantné získanie assertu: | ||
+ | |||
+ | public PositionAssert assertThat(Position position) { | ||
+ | return new PositionAssert(position); | ||
+ | } | ||
+ | |||
+ | A môžeme písať testy v štýle AssertJ: | ||
+ | |||
+ | @Test | ||
+ | public void testPosition() { | ||
+ | var p = new Position(3, 4); | ||
+ | assertThat(p).hasX(3) | ||
+ | .hasY(4); | ||
+ | } |
Verzia zo dňa a času 15:37, 1. február 2023
Knižnica AssertJ poskytuje krajšie asserty pre automatické testy. Napríklad:
JUnit | AssertJ |
---|---|
assertTrue(3 < 4); |
assertThat(3).isLessThan(4); |
assertTrue("abc".contains("a")); assertTrue("abc".contains("b")); assertTrue("abc".contains("c")); |
assertThat("abc").contains("a") .contains("b") .contains("c"); |
assertFalse(list.isEmpty()); assertFalse(list.contains("abc")); |
assertThat(list).isNotEmpty() .doesNotContain("abc"); |
Asserty pre vlastné typy
Máme napríklad takúto triedu:
public record Position(int x, int y) {}
Vytvoríme pre ňu assert:
public class PositionAssert extends AbstractAssert<PositionAssert, Position> { protected PositionAssert(Position actual) { super(actual, PositionAssert.class); } public PositionAssert hasX(int expectedX) { isNotNull(); if (actual.x != expectedX) { failWithMessage("Expected X %d but was %d", expectedX, actual.x); } return this; } public PositionAssert hasY(int expectedY) { isNotNull(); if (actual.y != expectedY) { failWithMessage("Expected Y %d but was %d", expectedY, actual.y); } return this; } }
Pridáme statickú funkciu na elegantné získanie assertu:
public PositionAssert assertThat(Position position) { return new PositionAssert(position); }
A môžeme písať testy v štýle AssertJ:
@Test public void testPosition() { var p = new Position(3, 4); assertThat(p).hasX(3) .hasY(4); }