微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以跳过登录页面来运行 Xamarin UI 测试?

如何解决是否可以跳过登录页面来运行 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 举报,一经查实,本站将立刻删除。