如何解决是否可以跳过登录页面来运行 Xamarin UI 测试?
我使用基于 NUnit.Framework
的 Xamarin UI 测试来测试我的应用程序。我目前有一个登录页面,它向在线服务器发出请求以检查用户凭据。是否可以绕过此屏幕并让 Xamarin UI 测试开始在特定页面上运行测试?
解决方法
您可以尝试使用 Page Object Pattern
。
应用中的每个页面都是测试代码中的一个类。页面类定义了可以在该页面上执行的所有操作的方法。
例如,我使用您的登录页面。您可以直接使用其他页面。
[Test]
public void LogInTest()
{
new LogInPage()
.EnterCredentials("username","password")
.ConfirmLogIn();
new HomePage();
}
有关步骤的更多详细信息,您可以查看下面的链接。 https://github.com/xamarin-automation-service/uitest-pop-example/wiki/POP-Implementation
,我认为您必须决定要执行哪种类型的测试。你想要行为驱动测试还是单元测试。 Xamarin UI-Test 框架旨在进行行为驱动测试或用户验收驱动测试。将应用作为一个整体进行测试,而不是像在单元测试中那样将各个部分分开。
如果您想使用 Xamarin UI-Test,我的建议是创建一个 IAuthInterface 并为其实现 2 个类。一种结合您的数据接口实现真正的身份验证提供程序,另一种是您模拟的。如果您想包含身份验证和数据服务,这取决于您的架构。
public interface IAuthService
{
Task<bool> Login(string user,string password);
}
public class MockService : IAuthService
{
public Task<bool> Login(string user,string password)
{
return Task.FromResult<bool>(true);
}
}
public class DataService : IAuthService,IRepositoryService
{
public Task<bool> Login(string user,string password)
{
//Do real authentication
}
}
对于测试,您可以注册 Mock 实现并构建 APK 进行测试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。