在集成测试中,我可以执行以下操作吗?,
-
是否可以使用具有这种流的应用程序运行集成测试:应用程序启动->启动屏幕->带有关闭按钮的广告->放大auth登录屏幕->主页->菜单主页按钮->另一个屏幕某某。。?
-
运行集成测试绕过登录屏幕,只对应用程序的特定部分进行集成测试
- 确实如此,但您必须确保您可以stub/mock-all"外部";组件,那些你实际上无法控制的组件(例如:外部广告服务器、身份验证服务…(。你需要能够控制这些组件,以便自己决定哪种可能的情况会发生(例如:广告未加载、身份验证失败…(,并避免在运行测试时依赖这些外部组件。最好的办法是确保可以将所需服务和小部件的模拟版本注入到应用程序中。这可能一开始需要一些重构,但最终应该会产生干净、更好的可测试代码
- 就我个人而言,我使用firebase_auth进行身份验证。在集成测试的
setUp
中;假装";用户已经通过使用CCD_ 2进行了身份验证(参见firebase_auth_mocks(。这个想法与第1点相同;firebase身份验证服务正在被嘲笑,它只会提供您想要的User
对象类型,在大多数情况下,它可能是一个成功身份验证的用户
Edit:你的应用程序应该以这样的方式设置,即它将首先检查用户是否已经通过身份验证。如果是,请跳过登录屏幕。这样,当身份验证服务提供一个已经通过身份验证的用户时,登录屏幕将被绕过,您可以继续测试应用程序的其余部分,而不必每次都填写凭据。。。