Ваш импорт неверен:
import { Dygraph } from 'dygraphs';
должно быть
import Dygraph from 'dygraphs';
Для объяснения взгляните на этот ответ .
Я прошел этот путь, и вот все проблемы, с которыми вы столкнетесь:
1 ) Это выглядит хорошо для одной записи, но что произойдет, если вам понадобится еще 4 записи для создания этой записи? Вы заканчиваете тем, что создали 4 записи, чтобы проверить вставку одной записи. Это вызывает все следующие проблемы:
2) Создание и удаление 4-5 записей за тест выполняется медленно, оно будет медленно складываться, и выполнение ваших тестов займет 45 минут (поверьте мне, я был там). Медленные тесты означают, что вы никогда не будете их запускать, что означает, что они будут в большинстве случаев повреждены и бесполезны.
3) Ваше удаление не удастся из-за пропущенной связи или зависимости по внешнему ключу, а затем данные корзины останутся в вашей базе данных. Эти данные из-за мусора приведут к провалу других тестов.
В свете этого я бы умолял вас рассмотреть две вещи. Во-первых, попробуйте использовать ORM вместо написания всей этой логики самостоятельно. Затем вам нужно всего лишь протестировать файлы сопоставления (или даже меньше, в зависимости от используемого вами ORM) или изучить макеты, чтобы вы могли изолировать логику в вашем коде доступа к данным от прямого доступа к базе данных.
Я считаю, что лучше всего делать в основном то, что вы наметили. Однако вместо того, чтобы разбивать событие создания на каждую операцию, я стремлюсь создать одну запись в одном методе, но сохраняю значение идентификатора этой записи в закрытой переменной класса, а затем извлекаю ее (считываю) внутри каждого метода. Итак, у меня есть метод Read assert, затем другой метод Update assert и, наконец, метод Delete assert.
Хотя то, что вы описали выше, очень тщательно. Однако самая большая проблема заключается в том, что если ваш метод delete завершился неудачно в вашем методе read assert, вы могли бы ошибочно полагать, что ваша функция чтения нарушена, хотя фактически эта функция удаления удаляется.