gpt4 book ai didi

view - 测试: How to test that view contains desired data

转载 作者:行者123 更新时间:2023-12-04 22:49:34 25 4
gpt4 key购买 nike

假设厨师可以制作食谱,而副厨师长可以制作必须由主厨批准的食谱。

您想测试一下,当主厨查看她的主页时,她会看到她自己创建的食谱。您还想测试她是否看到有等待她批准的食谱。

我可以想到两种方法来做到这一点:

  • 测试 View 是否包含某些字词,例如“您的食谱”和“正在等待您批准的食谱”
  • 为您正在使用的 html 元素添加不必要的属性,以便您可以检查具有“id=recipe_1”或“data-for-the-sake-of-testing=1”的元素

  • 我非常不喜欢这两种方法。

    为什么方法#1很烂
  • 令人难以置信的脆弱测试。每次您想对副本进行小幅更新时,测试都会中断。
  • i18n?这种方法将如何发挥作用?

  • 可能还有更多原因,但这两个是相当大的。

    为什么方法#2很烂

    仅仅为了测试而有多余的标记是多么烦人!用户不应该为了测试而增加下载大小。

    对此有什么好的方法?我很想听听任何替代方案,无论您使用哪种语言。我主要使用 Ruby、Test::Unit、Minitest、RSpec 和 Cucumber(尽管我的 Cuke 技能已经过时),但如果其他语言/框架弄清楚了,我也很想看看他们在做什么。

    最佳答案

    使用页面范例。

    尽可能以人性化的方式表达这些步骤,尽可能在能力级别(高级),并使用具体示例。例如,如果我使用 Cucumber,我可能会说:

    Given the sous-chef has created a recipe for Frog Pie
    When the chef looks for recipes to approve
    Then the recipe for Frog Pie should be in the list.



    在这些步骤的代码中,实例化或查找您要查找的特定页面,其中该页面是表示页面功能的对象。然后,该页面可以包含用户可以对该页面执行的所有操作 - 查找食谱、批准食谱、移动到另一个页面等。

    这样,如果您需要更改步骤的底层代码,您只需在一个地方更改它,特定页面的所有更改都会一起进行。因为您已经根据您要交付的功能来表述该场景,所以该场景不太可能需要进行太多更改(除非您发现您的业务需要与您所交付的功能不同的功能)。

    这对于基于窗口的应用程序也很有效,每个小部件或模块都是一个特定的页面。

    有额外的 id 只是为了测试也很好。有时设计师也喜欢使用它们。

    关于view - 测试: How to test that view contains desired data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10660149/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com