在Calabash测试中检查我是否在特定屏幕上的适当方法是什么?

时间:2014-09-30 00:27:39

标签: calabash calabash-ios calabash-android

我希望在测试期间断言我在特定的屏幕上,如果我不是,那么我应该失败。这样做的推荐方法是什么?例如,如果我有这样的测试:

Given that I am on the Login screen
When I press "Sign Up"
Then I should be on the Sign up screen

我为所涉及的两个屏幕编写了页面对象模型,并且每个都定义了一个特征方法。

我看过,还有TaskyPro示例(https://github.com/xamarin/mobile-samples/tree/master/TaskyPro-Calabash/features/step_definitions),它定义了一个“assert_screen”方法。我已经尝试将它放入我的项目中,但它不起作用,因为@screen总是为零。我没有Xamarin,所以我无法构建他们的项目并进行测试。

1 个答案:

答案 0 :(得分:2)

您需要先指定@screen

如果您的屏幕对象来自Calabash::IBase(iOS)或Calabash::ABase(Android),您可以使用内置的await方法。您只需为屏幕设置traittitle即可。

一个很好的例子是“Calabash跨平台示例”:https://github.com/calabash/x-platform-example 在那里,您可以看到如何分配屏幕/页面对象,如何制作屏幕/页面对象以及如何检查屏幕是否可见的示例。

我们在整个测试中使用屏幕对象,当您需要在多个平台上使用相同的测试时,它们会有很多帮助。

我建议您也使用屏幕/页面对象上的transition方法在屏幕之间导航。