0
votes

Créer un test JUnit pour un constructeur DTO

@Before
    public void setUp() {
        inventoryTable = new InventoryTable("12345", "TypeMoTo", "Machina");
        inventoryTable.setTerminalId("12345");
        inventoryTable.setMachineType("TypeMoTo");
        inventoryTable.setMachineName("Machina");
    }

@Test
    public void testThis() {
        assertThat(inventoryTable.getTerminalId()).isEqualTo("12345");
        assertThat(inventoryTable.getMachineType()).isEqualTo("TypeMoTo");
        assertThat(inventoryTable.getMachineName()).isEqualTo("Machina");

    }

3 commentaires

Peut-être devriez-vous vérifier votre premier test également. Qu'est-ce qu'il essaie après @Before Setters?


Test de messagerie instantanée Si les valeurs que j'ai attribuées dans les paramètres sont reçues par les getters


Oui mais testez-vous le constructeur ou les setters?


4 Réponses :


0
votes
@Before
public void setUp() {
    inventoryTable = new InventoryTable("12345", "TypeMoTo", "Machina");
}
@Test
public void testCopyConstructor() {
    InventoryTable it = new InventoryTable(inventoryTable);
    assertThat(inventoryTable.getTerminalId()).isEqualTo("12345");
    assertThat(inventoryTable.getMachineType()).isEqualTo("TypeMoTo");
    assertThat(inventoryTable.getMachineName()).isEqualTo("Machina");

}
Second constructor is Copy Constructor
In setup you already have one instance, so You can pass it to Copy Constructor and asserts values.

0 commentaires

0
votes

Même que vous le faites pendant 1ère une, vous pouvez utiliser votre ancien objet pour créer de nouveaux inventaire pour le 2e constructeur. xxx


0 commentaires

0
votes

En général, vous pouvez faire:

@Test
public void testSecondConstructor() {
   // setup:
   InventoryTableDTO dto =Mockito.mock(InventoryTableDTO.class);
   Mockito.when(dto.getTerminalId()).thenReturn("12345");
   Mockito.when(dto.getMachineType()).thenReturn("TypeMoTo");
   Mockito.when(dto.getMachineName()).thenReturn("Machina");


   // when:
   InventoryTable underTest = new InventoryTable(dto);

   // then:
   assertThat(inventoryTable.getTerminalId()).isEqualTo("12345");
   assertThat(inventoryTable.getMachineType()).isEqualTo("TypeMoTo");
   assertThat(inventoryTable.getMachineName()).isEqualTo("Machina");

}


0 commentaires

0
votes

Tout d'abord, je pense que vous devriez simplement vous débarrasser de votre @Before car l'objet testé est initialisé différemment en fonction du boîtier et de l'introduction des cas à l'intérieur des tests. Mais d'abord également un petit changement de votre 2e constructeur, pour utiliser le 1er: xxx

tests: xxx


0 commentaires