在.NET中的UI测试自动化框架中实现剧本模式/演员模型

乔纳森·奥珀曼

我对.NET中的测试自动化框架中的剧本模式/演员模型的实现感到好奇。

我预见到在测试自动化中使用此模式的好处是:

  • 将业务领域与测试逻辑分开(由BDD驱动)
  • 商业可读(演员执行和观察)
  • 报告中不一定需要任务(一组动作)(Given / Then)
  • 测试更有弹性,可以更好地处理设置/拆卸任务
  • 基础自动化应该能够在任何地方执行(Web / UI / API)-不可知论

研究:

这是通过Java BDD自动化框架Serenity BDD(以前称为Thucydides)实现的

可能的.NET实现可能包括使用以下技术:

  • NUnit / MSTest / XUnit
  • SpecFlow /小黄瓜
  • 阿卡网

我的问题是:是否有人为此目的在.NET框架中实现了此目的?

ΕG IÍI O

您可以签出以下库:CSF.Screenplay

这是一个受Serenity启发的库,Serenity是一个测试框架,其中包括Screenplay模式的Java实现。

在.NET中使用此库的首选集成是SpecFlow。但是,这是一个使用NUnit的示例,因为它更简洁,更广为人知。

[TestFixture]
[Description("Users should be able to buy groceries via the web application")]
public class UsersCanBuyGroceries
{
    [Test,Screenplay]
    [Description("Joe should see a thankyou message when he uses the web application to buy eggs.")]
    public void JoeShouldSeeAThankyouMessageWhenHeBuysEggs(ICast cast, BrowseTheWeb browseTheWeb)
    {
        var joe = cast.Get("Joe")
        joe.IsAbleTo(browseTheWeb);
        Given(joe).WasAbleTo(SearchTheShop.ForGroceries());
        When(joe).AttemptsTo(Click.On(GroceriesForSale.BuyEggsButton));
        var message = Then(joe).ShouldSee(TheText.Of(GroceriesForSale.FeedbackMessage));

        Assert.That(message, Is.EqualTo("Thankyou for buying eggs."));
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章