Notre architecture d'application C# implique un service Web, une base de données et une application Winforms. L'application winforms appelle une méthode dans le service Web appelé ProcessFile. Je souhaite utiliser les techniques de développement piloté par les tests d'acceptation et écrire l'article utilisateur Specflow suivant.Utilisation de Specflow avec un service Web
Story: Process file
As a knowledge worker
I want to process a file
so that it can go onto the next step.
Given query A is True
And File A exists
When I run Process with File A
Then A backup of the existing file exists
And a new processed file exists
And query B is true
And query C is true
Notre application Windows appellera l'ensemble de l'histoire du fichier de processus du service Web.
Toutefois, afin de faire BDD, nous avons été tentés d'avoir beaucoup de petits appels comme IsQueryBTrue
Il en résulte un service Web indésirable bavard et nous ne voulons pas IsQueryBTrue dans l'API publiée
I Je pense maintenant qu'un moindre mal serait pour le projet de test d'appeler le service de données directement et juste avoir quelques petits appels FileExists au service Web. Cependant, cela ne semble pas tout à fait correct, car le même code devrait sûrement être utilisé dans le test comme dans la production.
Comment puis-je tester adéquatement tout en évitant de faire un service web bavard?
Je demande maintenant si nous avons utilisé un api web ou WCF plutôt que d'un service Web wsdl
@kirsteng, bien que j'apprécie l'acceptation de ma réponse, vous pourriez vouloir attendre pendant un certain temps jusqu'à ce que le temps pour la prime soit expiré. Au fur et à mesure que le temps se rapproche, il va plus haut et plus de gens le verront et vous aurez plus de chances de: a) obtenir des réponses alternatives ou b) obtenir des gens compétents votant pour des réponses existantes avec lesquelles ils sont d'accord. confiance que la réponse est réellement correcte. –
Merci Sam. Nous avons fini par déplacer toute l'histoire vers le côté serveur, afin qu'il puisse appeler certaines choses directement sans avoir à les ajouter au service Web. Merci pour le conseil de la prime aussi. –
@kirsteng, pas de problème, content que vous avez trouvé une solution qui a fonctionné pour vous. SpecFlow est un très bon outil. –