Maison  >  Questions et réponses  >  le corps du texte

mysql - Comment les tests unitaires Java testent-ils le code qui modifie la partie base de données?

Pour diverses opérations de base de données CRUD, les tests unitaires correspondants doivent être écrits. Il n'y a pas beaucoup de problèmes avec la recherche, mais il y aura des problèmes avec les ajouts, les suppressions et les modifications. Puisque le code s'exécute dans un environnement de production, il ne peut pas vraiment être modifié.

Maintenant, ce à quoi je pense, c'est que la solution consiste à créer une autre base de données pour les données de développement distincte de la base de données dans l'environnement de production, mais c'est un peu gênant. Veuillez me dire comment les tests unitaires du code qui doivent modifier la base de données sont généralement effectués dans le processus de développement réel de l'entreprise ?

J'ai brièvement regardé l'introduction mockito, mais je n'ai pas semblé trouver de bonne solution. Quelqu'un peut-il donner des suggestions ou recommander des informations dans ce domaine ?

Remarque :
J'ai vu cette introduction aux tests unitaires dans la communauté IBM :

Les tests unitaires doivent être faciles à exécuter. L'exécution des tests unitaires ne doit pas nécessiter d'opérations lourdes telles que la configuration. Si le code du test unitaire inclut l'accès aux bases de données, aux réseaux, etc., le test n'est pas un véritable test unitaire.

Une façon de le dire单元测试是不允许连接真实的数据库的,所以一切数据库操作都要mock, alors comment tester le code de la base de données ?

阿神阿神2687 Il y a quelques jours583

répondre à tous(3)je répondrai

  • 伊谢尔伦

    伊谢尔伦2017-05-17 10:01:03

    Les tests unitaires peuvent être effectués en utilisant h2. Généralement, le développement au niveau de l'entreprise a son propre environnement de test, et ce n'est pas un gros problème de tester directement la base de données

    répondre
    0
  • 为情所困

    为情所困2017-05-17 10:01:03

    1. Ceci n'est pas un test unitaire, mais un test d'intégration

    2. Vous ne devez pas utiliser de bases de données en mémoire telles que h2, car la syntaxe et les fonctionnalités de ces bases de données sont différentes de votre base de données de production, ce qui peut entraîner un échec des tests

    3. Si vous utilisez Spring, veuillez vous référer au chapitre sur les tests d'intégration dans la documentation officielle de Spring

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-17 10:01:03

    Utilisez une base de données en mémoire pour résoudre ce problème. Après avoir introduit la base de données en mémoire, vous devez gérer le script ddl et le script dml des données d'initialisation nécessaire dans le code
    Démarrez la base de données en mémoire chaque fois que vous exécutez un test unitaire, flashez les scripts ddl et dml, puis. exécutez la logique de test unitaire. Les outils de script de base de données de gestion recommandés incluent flyway et liquibase

    .

    répondre
    0
  • Annulerrépondre