首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET的UI测试自动化框架中实现Screenplay模式/角色模型

在.NET的UI测试自动化框架中实现Screenplay模式/角色模型
EN

Stack Overflow用户
提问于 2017-09-25 10:01:55
回答 1查看 2.1K关注 0票数 2

我对.NET中的测试自动化框架中的剧本模式/角色模型的实现很好奇。

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

  • 将业务域与测试逻辑分离(BDD驱动)
  • 业务可读性(参与者执行和观察)
  • 在报告中不一定需要任务(一组行动)(给定/然后)
  • 测试更有弹性,因为设置/拆卸任务处理得更好。
  • 底层自动化应该能够在任何地方执行(Web/UI/API) -不可知

研究:

这是通过Java自动化框架Serenity (以前称为修昔底德)实现的。

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

  • NUnit/MSTest/XUnit
  • 斑纹花/Gherkin
  • Akka.Net

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-07 13:49:49

您可以查看以下库:CSF.Screenplay

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

在.NET中使用此库的首选集成是SpecFlow。但是这里有一个使用NUnit的例子,因为它更简洁,更广泛地被认可。

代码语言:javascript
运行
复制
[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."));
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46402492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档