Как увеличить охват классов тестирования в Junit на шаблонном кодеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как увеличить охват классов тестирования в Junit на шаблонном коде

Сообщение Anonymous »

Просмотр покрытия кода осуществляется с помощью IntelliJ с помощью «Выполнить
"тесты в проекте" с покрытием"

Дерево проблем: p>
  • Появился SonarCube, и для него требуется охват 80 %.
  • Поскольку существует много шаблонов, охват в порядке, но между 70 -75%
Хотя порог качества SonarQube может быть уменьшен, первый подход чтобы повысить охват стандартного кода.
... это вообще не имеет смысла, но этот вопрос цель состоит в том, чтобы повысить охват классов - < em>чисто технический.

Пример первый:

Код: Выделить всё

import java.util.List;

public class ResultData {
public List data;
}

Код: Выделить всё

public class ResultDataTest {

@Test
void testResultCollectionDataField() {
// Create an instance of ResultCollection
ResultData resultData = new ResultData();

// Set values for the Data field
resultData.data = Arrays.asList("Data1", "Data2", "Data3");

// Assert that the Data field contains the expected values
assertNotNull(resultData.data);
assertEquals(3, resultData.data.size());
assertEquals("Data1", resultData.data.get(0));
assertEquals("Data2", resultData.data.get(1));
assertEquals("Data3", resultData.data.get(2));
}

@Test
void testEmptyResultCollectionDataField() {
// Create an instance of ResultCollection without setting any data
ResultData resultData = new ResultData();

// Assert that the Data field is initially null
assertNull(resultData.data);
}
}
Покрытие обеспечивается Junit5/IntelliJ:
  • Класс: 0 % (0/1)
  • Метод: 100 % (0/0)
  • Линия: 100 % (0/0)
Пример второй:

Код: Выделить всё

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

public class InfoRequest {
@NotBlank
@Size(min = 8, max = 8)
public String code;
}

Код: Выделить всё

import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import java.util.Set;

import static org.junit.jupiter.api.Assertions.*;

public class InfoRequestTest {

private Validator validator;

@BeforeEach
public void setup() {
// Set up a validator for validating the constraints
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}

@Test
public void testValidCode() {
// Create an instance of InfoRequest and set a valid code
InfoRequest infoRequest = new InfoRequest();
infoRequest.code = "12345678"; // Valid, exactly 8 characters

// Validate the object
Set violations = validator.validate(infoRequest);

// Assert that there are no violations
assertTrue(violations.isEmpty());
}

@Test
public void testInvalidCodeTooShort() {
// Create an instance of InfoRequest and set an invalid (too short) code
InfoRequest infoRequest = new InfoRequest();
infoRequest.code = "1234"; // Invalid, less than 8 characters

// Validate the object
Set violations = validator.validate(infoRequest);

// Assert that there's one violation due to size constraint
assertEquals(1, violations.size());
}

}
Покрытие обеспечивается Junit5/IntelliJ:
  • Класс: 0 % (0/1)
  • Метод: 100 % (0/0)
  • Линия: 100 % (0/0)
На вопрос...
  • Почему охват классов остается нулевым?
.. Аналогично..
  • Как перевернуть охват классов на 100% (1/1) ?


Подробнее здесь: https://stackoverflow.com/questions/790 ... plate-code
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»