Как должен я модульный тест простой класс CRUD?

Ваш импорт неверен:

import { Dygraph } from 'dygraphs';

должно быть

import Dygraph from 'dygraphs';

Для объяснения взгляните на этот ответ .

6
задан Kjensen 17 April 2009 в 18:12
поделиться

2 ответа

Я прошел этот путь, и вот все проблемы, с которыми вы столкнетесь:

1 ) Это выглядит хорошо для одной записи, но что произойдет, если вам понадобится еще 4 записи для создания этой записи? Вы заканчиваете тем, что создали 4 записи, чтобы проверить вставку одной записи. Это вызывает все следующие проблемы:

2) Создание и удаление 4-5 записей за тест выполняется медленно, оно будет медленно складываться, и выполнение ваших тестов займет 45 минут (поверьте мне, я был там). Медленные тесты означают, что вы никогда не будете их запускать, что означает, что они будут в большинстве случаев повреждены и бесполезны.

3) Ваше удаление не удастся из-за пропущенной связи или зависимости по внешнему ключу, а затем данные корзины останутся в вашей базе данных. Эти данные из-за мусора приведут к провалу других тестов.

В свете этого я бы умолял вас рассмотреть две вещи. Во-первых, попробуйте использовать ORM вместо написания всей этой логики самостоятельно. Затем вам нужно всего лишь протестировать файлы сопоставления (или даже меньше, в зависимости от используемого вами ORM) или изучить макеты, чтобы вы могли изолировать логику в вашем коде доступа к данным от прямого доступа к базе данных.

5
ответ дан 17 December 2019 в 04:52
поделиться

Я считаю, что лучше всего делать в основном то, что вы наметили. Однако вместо того, чтобы разбивать событие создания на каждую операцию, я стремлюсь создать одну запись в одном методе, но сохраняю значение идентификатора этой записи в закрытой переменной класса, а затем извлекаю ее (считываю) внутри каждого метода. Итак, у меня есть метод Read assert, затем другой метод Update assert и, наконец, метод Delete assert.

Хотя то, что вы описали выше, очень тщательно. Однако самая большая проблема заключается в том, что если ваш метод delete завершился неудачно в вашем методе read assert, вы могли бы ошибочно полагать, что ваша функция чтения нарушена, хотя фактически эта функция удаления удаляется.

0
ответ дан 17 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

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