java-assertj: Rozdiel medzi revíziami
		
		
		
		
		
		
		Skočit na navigaci
		Skočit na vyhledávání
		
				
		
		
		
		
		
		
		
		
	
| Riadok 63: | Riadok 63: | ||
Pridáme statickú funkciu na elegantné získanie assertu:  | Pridáme statickú funkciu na elegantné získanie assertu:  | ||
| − |   public PositionAssert assertThat(Position position) {  | + |   public static PositionAssert assertThat(Position position) {  | 
      return new PositionAssert(position);  |       return new PositionAssert(position);  | ||
  }  |   }  | ||
Aktuálna revízia z 15:52, 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 static 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);
}