2016-12-18 1 views
0

J'ai ce que je suppose être un scénario assez courant: je veux tester un service web via FitNesse tout en étant capable d'injecter et lire des données de la base de données derrière le service web. Par exemple, je voudrais faire ce qui suit:Dans FitNesse, est-il possible de partager des variables ou des données entre des pages de test Java et FitSharp?

1) Enregistrer un enregistrement directement dans la base de données; puis

2) Utilisez le service Web pour mettre à jour l'enregistrement créé; puis

3) Vérifiez l'enregistrement de la base de données pour voir s'il a été correctement mis à jour.

La mouche potentielle dans l'onguent est que la base de données est SQL Server et que je développe sur mon instance (localdb) de SQL Server sur ma machine locale. J'ai donc besoin de FitNesse pour pouvoir me connecter à (localdb). Dans la mesure où je peux voir RestFixture, pour tester un service Web, fonctionne uniquement dans la version Java de FitNesse. Toutefois, la version Java de DbFit, pour la connexion aux bases de données, peut uniquement utiliser le pilote JDBC de Microsoft pour se connecter à SQL Server. Selon le this Stackoverflow question, le pilote MS JDBC ne prend pas en charge les canaux nommés et ne peut donc pas se connecter à (localdb). Par conséquent, je devrais utiliser la version FitSharp (.NET) de DbFit, qui fonctionne bien avec (localdb).

Maintenant, le problème est de combiner Java RestFixture avec FitSharp DbFit. Par exemple, si je crée un nouvel enregistrement dans la base de données via DbFit, je souhaite lire la valeur d'identité de l'enregistrement que je viens de créer et utiliser cette valeur pour identifier l'enregistrement à mettre à jour via le service Web. Donc, je devrais passer une variable ou quelques informations de la page de test FitSharp DbFit à la page de test Java RestFixture. Est-ce possible?

+0

Je vois (dans http://stackoverflow.com/questions/11345746/connecting-to-sql-server-localdb-using-jdbc) que jTDS prend en charge la connexion JDBC à localdb. Est-ce que c'est une option pour vous? –

+0

@FriedHoeben: Malheureusement non. La version Java de DbFit prend uniquement en charge le pilote Microsoft JDBC pour SQL Server. –

Répondre

1

Pour autant que je sache, ce n'est pas le cas. L'API REST ne prend pas en charge créer et lire? Cela permettrait l'ensemble du test via REST (pas d'accès direct à la base de données requis, et pas besoin de fonctionner sur le même serveur que la base de données).

+0

Malheureusement, l'API Web ne supporte pas la création et la lecture de toutes les tables de la base de données, mais seulement de nouvelles qui ont été développées au cours des derniers mois. Créer des commandes et des réservations, qui sont nécessaires pour le test, devrait être fait via une application de bureau si elles ne peuvent pas être injectées directement dans la base de données. Il pourrait être possible d'automatiser le processus de création de commandes via l'application de bureau via quelque chose comme Auto-It, mais cela semble très compliqué par rapport à simplement injecter les données directement dans la base de données. –