WordPressMocks 0.0.16

WordPressMocks 0.0.16

由以下人员维护:Lorenzo MatteiJeremy MasselYael RubinsteinAutomattic MobileJeremy MasselOlivier HalligonGiovanni Lodi



  • WordPress 移动团队

WordPressMocks

为测试 WordPress 移动应用程序而设计的网络模拟

用法

Android

要在您的项目中使用此库,您必须将其设置为一个子目录。从您主要项目的主目录开始,添加以下子目录

$ git subtree add --prefix=libs/mocks [email protected]:wordpress-mobile/WordPressMocks.git trunk

这将在您的根目录中创建一个新的目录,libs/mocks,包含此仓库的内容。

在此点,您可以将它添加到您项目根目录的 settings.gradle

include ':libs:mocks:WordPressMocks'

并添加到您的主应用模块的 build.gradle 依赖项

dependencies {
    androidTestImplementation('com.github.tomakehurst:wiremock:2.23.2') {
        exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
        exclude group: 'org.apache.commons', module: 'commons-lang3'
        exclude group: 'asm', module: 'asm'
        exclude group: 'org.json', module: 'json'
    }
    androidTestImplementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
    androidTestImplementation project(path:':libs:mocks:WordPressMocks')
}

独立运行

要作为独立进程启动 WireMock 服务器,您可以使用以下命令运行它

./scripts/start.sh 8282

在这里 8282 是服务器运行的端口。现在可以通过 http://localhost:8282 访问。

贡献

您可以使用以下命令将此库的最新更改抓取到您的项目中:

$ git subtree pull --prefix=libs/mocks [email protected]:wordpress-mobile/WordPressMocks.git trunk --squash

您可以将自己的更改推送到 WordPressMocks 以使用以下命令将其流式传输到上游:

$ git subtree push --prefix=libs/mocks [email protected]:wordpress-mobile/WordPressMocks.git branch-name

注意:您可以将此存储库作为远程存储库添加,以简化 git subtree pushpull 命令。

$ git remote add mockslib [email protected]:wordpress-mobile/WordPressMocks.git

这将允许您使用以下表单而不是此表单:

$ git subtree pull --prefix=libs/mocks mockslib trunk --squash

创建模拟文件

WireMock 用于处理请求的 JSON 文件位于 src/main/assets 目录中。要生成其中一个文件,您首先需要设置 Charles Proxy(或类似工具)以便与您的 Android 模拟器一起使用。如果您从未进行过,我建议您从这篇文章开始学习。完成这些操作后,您需要遍历您正在测试的具体流程,并将必要响应的 JSON 内容存储在每个模拟文件的 response 字段的 jsonBody 字段中。

以下是一个示例:

{
    "request": {
        "urlPattern": "/rest/v1.1/me/",
        "method": "GET"
    },
    "response": {
        "status": 200,
        "jsonBody": {
            // ..... Your response here
        },
        "headers": {
            "Content-Type": "application/json",
            "Connection": "keep-alive",
            "Cache-Control": "no-cache, must-revalidate, max-age=0"
        }
    }
}

这些文件用于在网络请求进行时进行匹配。有关 WireMock 的请求匹配更多信息,请查看其文档

许可协议

WordPressMocks 是一个受 GNU 通用公共许可协议版本 2 涵盖的开源项目。