Как создать читаемые тестовые данные таблицы правды в Junit - PullRequest
1 голос
/ 24 апреля 2020

Я пытаюсь смоделировать логические схемы c с Java. Я хотел бы иметь возможность использовать тестовые данные, которые немного похожи на таблицу истинности, без единого утверждения для каждой возможной комбинации ввода и вывода.

Моей первой мыслью было использование параметризованного бегуна из junit - это позволяет мне сделать что-то вроде этого:

@RunWith(Parameterized.class)
public class AndGateTest {

  @Parameterized.Parameters(name = "{index}: Input: a={0}, b={1}, q={2}")
  public static Collection<Object[]> truthTable(){
    Object[][] andGateTruthTable = {
        {false, false, false},
        {true, true, true},
        {true, false, false},
        {false, true, false}
    };
    return Arrays.asList(andGateTruthTable);
  }

  private final boolean a;
  private final boolean b;
  private final boolean q;
  private AndGate and;

  public AndGateTest(boolean a, boolean b, boolean q ) {
    this.a = a;
    this.b = b;
    this.q = q;
  }

  @Before
  public void setup() { and = new AndGate(); }

  @Test
  public void testWithTruthTable() { assertEquals( q, and.input(a, b)); }

Это прекрасно работает, но мне интересно, есть ли способ сделать Таблицу правды более читабельной? Например, используя Cucumber, я мог получить таблицу данных со списком карт. Я счастлив использовать это, так как я довольно хорошо знаком с корнишоном, но мне было интересно, какие еще могут быть подходы?

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