Динамическое тестирование данных теста из файлов (xml, json, csv, txt) с использованием Junit и Mockito в проекте Gradle

int main()
{
    unsigned int a = 1;
    printf("%u\n",a<<(-1));
    return 0;
}

Выходной сигнал: 2147483648.

Вот мое предположение и подтверждение: (просто предположение!) [/ ​​g1]

1. «& lt; правый операнд должен быть неподписанным типом int,

, поэтому, во-первых, (int) «-1» будет введен в (unsigned int) «-1». Причина Тип int представляет собой представление с двумя дополнениями, результат будет равен 2 ^ 32-1 (без знака int)

2.Due на номер 2 ^ 32-1 больше, чем цифра максимального смещения, 2 ^ 32 - 1 будет mod 32, что равно 27

. Я также пробовал некоторые другие правильные номера операндов, а результаты ручного вычисления с допущенными правилами будут одинаковыми с каким продуктом моей IDE.

Я пытаюсь найти некоторые поддерживающие официальные документы, ведь можно проверить, правильно ли мое предположение или нет. Может быть, вы можете мне сказать.

1
задан user11222109 19 March 2019 в 10:37
поделиться

1 ответ

В JUnit5 вы можете запускать параметризованные тесты с CSV-источником . Вы можете увидеть пример со встроенными значениями CSV:

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

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;

class PriceCalculatorTest {

  PriceCalculator classUnderTest;

  @BeforeEach
  void setUp() throws Exception {
    classUnderTest = new PriceCalculator();
  }

  @ParameterizedTest
  @CsvSource({"0.0, 13", "5.0, 14", "5.0,26", "15.0,27", "15.0,64", "10.0,65"})
  void testGetPrice(double expected, int age) {
    assertEquals(expected, classUnderTest.getPrice(age), 0.01D);
  }
}

Если вы хотите использовать внешний файл данных, для этого есть немного другой синтаксис:

@CsvFileSource(resources = "/two-column.csv", numLinesToSkip = 1)

используя CSV-файл с заголовками в первой строке. Если вы хотите использовать другой формат файла, вам нужно реализовать свой собственный ArgumentsProvider.

0
ответ дан Jens Dibbern 19 March 2019 в 10:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: