我希望在测试期间断言我在特定的屏幕上,如果我不是,那么我应该失败。这样做的推荐方法是什么?例如,如果我有这样的测试:
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,所以我无法构建他们的项目并进行测试。
答案 0 :(得分:2)
您需要先指定@screen
。
如果您的屏幕对象来自Calabash::IBase
(iOS)或Calabash::ABase
(Android),您可以使用内置的await
方法。您只需为屏幕设置trait
或title
即可。
一个很好的例子是“Calabash跨平台示例”:https://github.com/calabash/x-platform-example 在那里,您可以看到如何分配屏幕/页面对象,如何制作屏幕/页面对象以及如何检查屏幕是否可见的示例。
我们在整个测试中使用屏幕对象,当您需要在多个平台上使用相同的测试时,它们会有很多帮助。
我建议您也使用屏幕/页面对象上的transition
方法在屏幕之间导航。