тестовый код, который изменяет базу данных без изменения состояния базы данных - PullRequest
0 голосов
/ 16 мая 2018

как проверить.функция, которая фактически изменяет базу данных без фактического изменения данных или состояния базы данных.Как мы можем добиться этого с помощью dbunit?

У меня есть функция модели

const newValue = await app.models.module.functionname({
       id: '005q21', typoe: 'XXX', isActive: false
});

, которая фактически записывает строку в db, а возвращаемый тип newValue является объектом.Как я могу написать модульный тест, который на самом деле работает на производстве и проверяет функцию по базе данных, не изменяя оперативные данные.(используя dbunit)

Я пишу тест для приложения node.js / sql, используя mocha

1 Ответ

0 голосов
/ 16 мая 2018

Как я могу написать модульный тест, который на самом деле работает на производстве и проверяет функцию по базе данных

Это стандартная функциональность dbUnit, поэтому начните с одного из подходов * TestCase, таких как PrepAndExpectedTestCase .

Просто попросите dbUnit сравнить ожидаемые данные, и он проверит БД за вас, как обычно, без разрушения.

без изменения текущих данных

  1. Не настраивайте подготовительные данные, и они не будут вставлять строки.
  2. На настроенном тестере баз данных настройте его так, чтобы он не обновлял таблицы:

    а. Установите для SetUpOperation значение DatabaseOperation.NONE

    б. Установите для параметра TearDownOperation значение DatabaseOperation.NONE

    Обратите внимание, что если для параметра TearDownOperation задано значение DatabaseOperation.NONE, строка, созданная для тестирования, останется в базе данных. Это может быть тем, что вам нужно, но обычно вы хотите, чтобы dbUnit очищал созданные строки, когда все сделано (все строки или определенные строки; см. Опции DatabaseOperation).

...