问题标签 [mockwebserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1437 浏览

android - 使用 MockWebServer 和 Retrofit 测试乐器(Espresso)登录

我正在寻找从 LoginActivy 创建一个工具(浓缩咖啡)测试。我正在使用 Mock 进行 API 调用,不幸的是我的应用程序一直在调用我的 REAL API。

下面是我的测试代码

当测试通过下面的代码时,测试调用 REAL API。

这是测试开始前的代码

该应用程序正在使用 productFlavors 配置:

我不知道还能做些什么来避免在我的 REAL API 中调用,有人可以帮助我吗?

配置 Android Studio 变量环境 构建变体

0 投票
2 回答
194 浏览

android - 为什么这个 Android Instrumentation Test 调用活动 onCreate 两次?

我有这个测试课:

我有这个活动:

当我运行时,我的测试getQuoteOfTheDay()会执行两次。是什么赋予了?问题是我正在尝试模拟一个 api 调用,它看起来像预期的那样工作,但是还有另一个日志我不确定它来自哪里。作为参考,这里是 logcat 中的输出

正如你所看到的,我点击了https://quotes.rest/qod一次,然后我点击了我的模拟服务器。

0 投票
0 回答
817 浏览

android - 由于 NoClassDefFoundError,仪器测试失败

从今天开始,我在调试模式下对我的 kotlin 应用程序进行多重索引,因为库迫使我这样做。我的问题是我的 UI 测试不再工作了。我也在缩小我的apk。

我收到以下错误:

有没有人在使用 OkHttp MockWebServer 时收到此错误?或者是其他东西。也许我错过了一些proguard规则?

我的 app/build.gradle 文件:

如果我的方法是正确的,我将感谢任何帮助和/或讨论。

0 投票
0 回答
777 浏览

android - Retrofit2 单元测试,MockWebServer

我想在 Retrofit2 下测试我的 Rest 服务构建。我不想单独模拟所有响应,但我想模拟整个 Web 服务器。我发现使用 MockServer 是可能的。但我无法使用它。

我的 Retrofit2 基本 URL 由我的构建类型给出。例如,我尝试创建一个新的构建类型,例如“staging”,如下所示:

并添加到 gradle 配置中

但是我的测试不再起作用了,Intellij 中的一切都变红了。未找到依赖项。

基本上我想要做的是,对于每个测试,我想要一个具有特定 URL 的模拟 Web 服务器。我的 Retrofit2 接口基本 URL 将使用这个 url,我希望 mockwebserver 使用特定的 JSON 文件响应来响应它们。

例如:

有关信息,我的 Retrofit2 服务使用 RxJava Observable

0 投票
0 回答
4297 浏览

android - OkHttp MockWebServer 无法接受新实例上的连接

我正在使用OkHttp MockWebServer来模拟服务器响应。

我已经实现了两个测试类,第一个包含两个测试,第二个包含一个测试。第一类工作正常,但对于第二类,由于套接字服务器已关闭,因此出现错误。

第一次测试班

两个测试的日志都是正确的

第二节课不工作,在第一节课之后被调用

日志文件,套接字关闭的原因

0 投票
1 回答
2953 浏览

android-testing - MockWebServer: llegalStateException: start() 已经调用

我尝试使用MockWebServer运行测试。

我想使用模拟响应进行 UI 测试,因此我可以测试有效\无效的 UI 更改,例如登录,或在登录 API 中显示错误。

但是,每次运行代码时,我都会遇到以下异常:

代码:


我究竟做错了什么?.start() 只调用一次,我什至 .shutdown()以防万一......我不明白它怎么会调用不止一次。

提前致谢。

0 投票
3 回答
2822 浏览

android - 使用 MockWebServer 时超时?

我尝试使用MockWebServer对我的 API 的各种响应。我做了一个简单的例子,只是为了尝试我想做的是一种工作方法。

mockWebServer不是要“模拟”我的 http 连接的端点吗?像一个真正的服务器?每当我尝试拨打电话时,都会收到 UnknownHostException。

我用错了吗?它不应该只是替换服务器的响应吗?(嘲笑它)

编辑:

我在清单中有互联网许可。

我用:

代码:

日志猫:

com.androidnetworking.error.ANError:java.net.UnknownHostException:无法解析主机“some-mock-url.com”:没有与主机名关联的地址

0 投票
2 回答
2359 浏览

android - OkHttp MockWebServer 与使用 Retrofit 的动态 URL

我的应用程序使用动态 URL 进行网络服务调用(在 Android 上)。baseUrl设置为空,我们在服务接口中传递Retrofit2 @Url参数:

我们事先不知道主机/域,因此 MockWebServer 无法拦截请求。获取动态 URL 初始列表的调用是在不同的屏幕中进行的。一个想法是创建一种新风格,为要使用的 URL 提供本地数据源,这是我的后备计划。

我很好奇 MockWebServer 是否有任何其他方法可以帮助测试此类案例并且可以仅限于测试代码。

0 投票
1 回答
961 浏览

android - 在 espresso 测试中使用 MockWebServer 的调度程序来响应来自另一个模块的异步调用

我正在为一个应用程序编写 UI 测试,该应用程序期望 JSON 有效负载作为对通过异步调用发出的请求的响应,该调用由我正在测试的活动中的按钮触发。我打算提供各种模拟有效负载来设置此活动的状态并在 UI 中声明各种项目。

我没有让调度程序捕获通过异步调用发出的请求。

异步调用是在模块内的一个类中进行的,这是我的应用程序的编译时依赖项,我觉得这是我的问题所在,甚至不确定这是否超出了 Espresso 的能力范围。

如果我在实际测试中提出测试请求,它会起作用:

通过添加日志,我验证了我的 API url 设置正确并且与 MockWebServer 的端口相同。该应用程序当前不使用任何依赖注入。

异步调用的主要部分:

感谢任何输入。

0 投票
1 回答
462 浏览

android - Unit test android using synchronous call retrofit 2

I am developing an application based on clean architecture, for which I use Dagger 2, rxJava, retrofit 2 and realm. I call the services synchronically in a remote layer, and asynchronously in the presentation by using rxJava, the application is now working, now I want to implement unit tests to have a report of code coverage, the tests Unitarians for the local layer are already there, I am having problems to do unit tests to the layer where I call the services with retrofit, how could the unit tests for this case?

Project Structure

Call to service with retrofit

RestApi.java

The unit test code, this will be fine, in the MockWebServer response I am creating a json with two values but calling the methodo of the call to the webservice List appList = cloudAppRepository.getApps (); it returns a list with no record

}

Test Result