Создать тест JUnit для конструктора DTO - PullRequest
0 голосов
/ 06 января 2020
public InventoryTable(String terminalId, String machineType, String machineName) {
        super();
        this.terminalId = terminalId;
        this.machineType = machineType;
        this.machineName = machineName;
    }    

public InventoryTable(InventoryTableDTO inventoryDTO) {
            this.terminalId = inventoryDTO.getTerminalId();
            this.machineType = inventoryDTO.getMachineType();
            this.machineName = inventoryDTO.getMachineName();

        }

Вот мои конструкторы, и мне нужно создать тест JUnit для второго

Ниже мой тест JUnit для первого конструктора

@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");

    }

Спасибо:)

Ответы [ 4 ]

0 голосов
/ 06 января 2020

Прежде всего, я думаю, что вы должны просто избавиться от @Before, потому что тестируемый объект инициализируется по-разному в зависимости от случая и запускает случаи внутри тестов. Но сначала также небольшое изменение в вашем втором конструкторе, чтобы использовать первый:

public InventoryTable(InventoryTableDTO inventoryDTO) {
    this(inventoryDTO.getTerminalId(),
        inventoryDTO.getMachineType(),
        inventoryDTO.getMachineName());
}

Тесты:

@Test
public void test1st() {
    InventoryTable inventoryTable =
            new InventoryTable("12345", "TypeMoTo", "Machina");        
    assertThat(inventoryTable.getTerminalId()).isEqualTo("12345");
    assertThat(inventoryTable.getMachineType()).isEqualTo("TypeMoTo");
    assertThat(inventoryTable.getMachineName()).isEqualTo("Machina");

}

@Test
public void test2nd() {
    InventoryTable inventoryTable = new InventoryTable(
                new InventorytableDto("12345", "TypeMoTo", "Machina"));
    assertThat(inventoryTable.getTerminalId()).isEqualTo("12345");
    assertThat(inventoryTable.getMachineType()).isEqualTo("TypeMoTo");
    assertThat(inventoryTable.getMachineName()).isEqualTo("Machina");
}
0 голосов
/ 06 января 2020

То же, что вы делаете для 1-го, здесь вы можете использовать старый объект для создания нового InventoryTable для 2-го конструктора.

@Test
public void testThis2() {
   InventoryTable inventoryNew = new InventoryTable();
   assertThat(inventoryNew.getTerminalId()).isEqualTo(inventoryTable.getTerminalId());
   assertThat(inventoryNew.getMachineType()).isEqualTo(inventoryTable.getMachineType());
   assertThat(inventoryNew.getMachineName()).isEqualTo(inventoryTable.getMachineName());  
}
0 голосов
/ 06 января 2020

В общем, вы можете сделать:

@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");

}

Кроме создания макета с помощью mockito, вы также можете создать InventoryTableDTO с его конструктором.

0 голосов
/ 06 января 2020
@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");

}

Второй конструктор - это конструктор копирования В настройке у вас уже есть один экземпляр, поэтому вы можете передать его в конструктор копирования и установить значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...