当前位置 : 主页 > 手机开发 > 其它 >

测试:如何测试该视图包含所需的数据

来源:互联网 收集:自由互联 发布时间:2021-06-22
假设厨师可以制作食谱,而Sous-Chefs可以创建必须由主厨批准的食谱. 您想测试一下,当主厨查看她的主页时,她会看到她自己创建的食谱.你还想测试她看到有食谱在等待她的批准. 我可以想
假设厨师可以制作食谱,而Sous-Chefs可以创建必须由主厨批准的食谱.

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

我可以想到两种方法:

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

我非常不喜欢这两种方法.

为什么接近#1很糟糕

>难以置信的脆弱测试.每次要对副本进行微小更新时,测试都会中断.
> i18n?如何使用这种方法?

可能有更多原因,但这两个原因相当庞大.

为什么接近#2很糟糕

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

对此有什么好处?我有兴趣听到任何替代方案,无论你用什么语言思考.我主要想在Ruby,Test :: Unit,Minitest,RSpec和Cucumber(虽然我的Cuke技能陈旧),但是如果其他语言/框架如果想到这一点,我也很想知道他们在做什么.

使用页面范例.

尽可能在能力级别(高级别)尽可能地以人为方式表达步骤,并使用特定示例.例如,如果我使用黄瓜,我可能会说:

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也没关系.有时设计师也喜欢使用它们.

网友评论