我希望在测试期间断言我在特定的屏幕上,如果我没有,那么我应该失败。建议的方法是什么?例如,如果我有一个这样的测试:
Given that I am on the Login screen
When I press "Sign Up"
Then I should be on the Sign up screen
我已经为涉及的两个屏幕编写了页面对象模型,它们都定义了一个trait方法。
我看了看,这里有TaskyPro示例(https://github.com/xamarin/mobile-samples/tree/master/TaskyPro-Calabash/features/step_definitions),定义了一个"assert_screen"方法。我试着把它放进我的项目中,但它不起作用,因为@screen总是零。我没有Xamarin,所以我不能构建他们的项目并进行测试。
您需要先分配@screen
。
如果你的屏幕对象是Calabash::IBase
(iOS)或Calabash::ABase
(Android)固有的,你可以使用内置的await
方法。您只需要为屏幕设置一个trait
或title
。
一个很好的例子是"葫芦跨平台示例":https://github.com/calabash/x-platform-example在那里,您可以看到如何分配屏幕/页面对象、如何创建屏幕/页面目标以及如何检查屏幕是否可见的示例。
我们在所有的测试中都使用屏幕对象,当您需要在多个平台上使用相同的测试时,它们会有很大帮助。
我建议您也在屏幕/页面对象上使用transition
方法在屏幕之间导航。