- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想对我的 mochiweb 应用程序进行高级测试,就像可以在 Python 中使用 WebTest,在 Django 中使用测试客户端,在 Ruby on Rails 中使用功能或集成测试一样。我不太挑剔怎么做。基本上我只想发送或模拟 HTTP 请求并对结果进行断言。
我重构了我的代码,这样我的请求处理程序就不会自己调用 Req:respond()
,而是返回一个元组 {Code, Headers, Body}
。这允许我构建虚拟请求mochiweb_request:new()
,将它们传递给我的请求调度程序并使用 EUnit 对结果进行断言:
make_request(Method, Path) ->
Request = mochiweb_request:new(nil, Method, Path, {1, 1},
mochiweb_headers:make([{"Accept", "text/html"}])),
Response = myapp:dispatch(Request),
Response.
signin_test() ->
{Code, _, _} = make_request('GET', "/signin"),
?assertEqual(Code, 200),
ok.
现在我的问题是如何测试 POST 请求。我没有在 mochiweb 中找到任何允许我这样做的东西。从阅读 mochiweb 代码来看,似乎当 Req:parse_post()
被调用时,它会触发对套接字的读取。我在 src/mochiweb.erl 中找到了一些有趣的测试代码.显然,这涉及构建 HTTP 消息、将它们写入套接字并读回响应。我试图在我自己的测试代码中这样做,但几个小时后我没能成功。我开始怀疑我是否正朝着正确的方向前进。也许我需要将更多功能与 HTTP 管道分离,即。不要从我的请求处理程序中调用 Req:parse_post()
。我想到的另一个解决方案是使用第三方网络测试库,不一定要用 Erlang 编写。也许是 Ruby 或 Python 中的某些东西,甚至可能是 Selenium。
那么您会推荐什么解决方案来对 mochiweb 应用程序进行功能或集成测试?
最佳答案
我们主要将测试与 HTTP 管道分离。无论如何,通常在功能环境中做正确的事情。
src/mochiweb_multipart.erl 中有一些 eunit 代码可能与您的特定用例更相关。
关于http - 如何测试 mochiweb 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4571197/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 8年前关闭。 Improve thi
从我目前阅读的所有关于 Mochiweb 的文章中,我一遍又一遍地听说 Mochiweb 提供了非常好的可伸缩性。我的问题是,Mochiweb 究竟是如何获得其可扩展性的?是来自 Erlang 固有的
我有一个从 mochiweb 框架生成的基本 Web 服务器。要启动它,我使用 start.sh框架自动生成的脚本。一切正常,服务器启动。现在我有一个想要与第一个一起启动的 mochiweb 服务器。
[只有看过 Kevin Smith 的“Erlang in Practice”截屏视频才有意义] 我是一个 Erlang 菜鸟,试图构建一个带有嵌入式网络服务器 [mochiweb] 的简单 Erla
我正在尝试通过 Mochiweb 在端口 80 上运行 BeepBeep。如果我输入 sudo ./start_server.sh,它就会起作用。像这样运行 Mochiweb 是否存在安全风险?如果有
我有一个基本的 mochiweb 轮询循环,如下所示,除了它执行其他操作而不是打印到控制台并最终返回: blah() -> io:format("Blah") blah() loop(Re
我想对我的 mochiweb 应用程序进行高级测试,就像可以在 Python 中使用 WebTest,在 Django 中使用测试客户端,在 Ruby on Rails 中使用功能或集成测试一样。我不
我有 Nginx 作为我的前端 Web 服务器,监听端口 80。对于某些请求,我设置了 nginx 将其反向代理到我编写的基于 mochiweb 的 Web 服务器,监听端口 8000。 nginx
我需要使用 mochiweb 对列表进行 JSON 编码。 我如何获得以下信息: List = ["This is message 1.", "This is message 2.", "This i
我用 Erlang 和 Mochiweb 制作了一个 cometd 聊天服务器。然后我运行“./start-dev.sh”来启动服务器。但大约 1 个月后,我收到以下错误: =ERROR REPORT
Nitrogen project web 页面声明了对 yaws、mochiweb 和 inets 的同等支持,但是使用这些 web 服务器中的哪一个它会表现得最好? IE。对于主要是动态内容的大型应
我在我的 Mint/Debian 机器上非常简单地设置了 CouchDB。我的 Java webapp 在查询 CouchDB 时遇到了相当长的延迟,所以我开始寻找原因。 编辑:查询模式是很多小查询和
刚开始阅读 Francesco Cesarini 的伟大 Erlang 书籍的 OTP 章节。大多数 Erlang 应用程序,例如 MochiWeb、Riak、RabbitMQ、Zotonic、eja
我是一名优秀的程序员,十分优秀!