Heim > Fragen und Antworten > Hauptteil
Für verschiedene Datenbankoperationen müssen entsprechende Unit-Tests geschrieben werden. Es gibt nicht viele Probleme bei der Suche, aber es wird Probleme beim Hinzufügen, Löschen und Ändern geben. Da der Code in einer Produktionsumgebung ausgeführt wird, kann er nicht wirklich geändert werden. CRUD
Bitte sagen Sie mir, wie Unit-Tests von Code, der die Datenbank ändern muss, im realen Entwicklungsprozess des Unternehmens im Allgemeinen durchgeführt werden.
Ich habe kurz die Einleitung angeschaut, aber ich schien keine gute Lösung gefunden zu haben. Kann jemand Vorschläge machen oder Informationen in diesem Bereich empfehlen? mockito
Hinweis:Ich habe diese Einführung in Unit-Tests in der IBM-Community gesehen:
Unit-Tests sollten einfach auszuführen sein. Die Ausführung von Unit-Tests sollte keine umständlichen Vorgänge wie die Konfiguration erfordern. Wenn der Unit-Test-Code den Zugriff auf Datenbanken, Netzwerke usw. umfasst, handelt es sich bei dem Test nicht um einen echten Unit-Test.Man kann es so sagen
: Wie sollte der Datenbankcode getestet werden? 单元测试是不允许连接真实的数据库的,所以一切数据库操作都要mock
为情所困2017-05-17 10:01:03
你这个不是单元测试Unit Test,是集成测试Integration Test
不应该使用h2等内存数据库,因为这些数据库的语法、特性和你生产数据库不同,很可能会导致测试失败
如果你用Spring,则参考Spring官方文档中关于Integration Test章节
phpcn_u15822017-05-17 10:01:03
用内存数据库来解决该问题。引入内存数据库之后需要在代码中管理ddl脚本和必要的初始化数据dml脚本,
每次跑单元测试时启动内存数据库,刷ddl和dml脚本,然后执行单元测试逻辑,推荐管理数据库脚本工具有flyway和liquibase