[Feature]: BDD and Test Engine Example

Ouverte
#531 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
5/5
Temps estimé
Plus d'une semaine
Accessibilité débutants
25/100
Type d'issue
Fonctionnalité
Clarté
À clarifier
Activité
À l'abandon
Stack technique
csharp
Domaine
testing-qa

Piste de recherche

Commencez par examiner les API existantes TestEngine, TestSettings et ExecuteAndReturn, puis comparez l’exemple Gherkin SpecFlow/Reqnroll demandé avec le flux de test actuel du dépôt. Définissez l’intégration du package NuGet et le comportement requis des étapes ; le travail est terminé lorsque l’exemple peut exécuter le scénario de connexion présenté via le Test Engine.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

enhancement
Is your feature request related to a problem? Please describe.

Would like to create BDD style test using Power App Test Engine

Describe the solution you'd like

Create a Gherkin test using Specflow/Reqnroll.

For example as Specflow test something similar to

Feature: Login
  Scenario: Successful login
    Given the user profile "user1" navigates power app named "MyTest"
    Then the user should be redirected to the dashboard

Exend Test Engine as a NuGet package and extend the ability

using TechTalk.SpecFlow;
using Microsoft.PowerApps.TestEngine;

namespace SpecflowPowerAppsExample
{
    [Binding]
    public class LoginSteps
    {
        private readonly TestEngine _testEngine;

        public LoginSteps()
        {
            _testEngine = new TestEngine();
        }

        [Given(@"the user profile ""(.*)"" navigates power app named ""(.*)""")]
        public void GivenTheUserProfileNavigatesPowerAppNamed(string userProfile, string appName)
        {
            _testEngine.TestSettings.Profile = userProfile1;
            _testEngine.TestSettings.AppName = appName;
        }

        [Then(@"the user should be redirected to the dashboard")]
        public void ThenTheUserShouldBeRedirectedToTheDashboard()
        {
            var powerFxSteps = new List<string>
            {
                "Set(CurrentPage, 'Dashboard')",
                "Validate(CurrentPage == 'Dashboard')"
            };

            foreach (var step in powerFxSteps)
            {
                var result = _testEngine.ExecuteAndReturn(step);
                Assert.IsTrue(result.Contains("true"), $"Step '{step}' failed.");
            }
        }
    }
}
Describe alternatives you've considered

No response

Additional context?

No response

Langage dominant
C#
Étoiles
151
Forks
55
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Issues similaires

Plus d'issues C#

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.