首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Phoenix/Elixir:如何使用Plug.Test.conn()设置测试连接中的操作?

在Phoenix/Elixir中,可以使用Plug.Test.conn()函数来设置测试连接中的操作。Plug.Test.conn()函数用于创建一个测试连接,可以模拟HTTP请求并进行测试。

要设置测试连接中的操作,可以通过传递参数来配置Plug.Test.conn()函数。以下是一些常用的参数和用法:

  1. :method - 设置HTTP请求的方法,例如: :get, :post, :put, :delete等。
  2. :path - 设置请求的路径。
  3. :host - 设置请求的主机名。
  4. :port - 设置请求的端口号。
  5. :query - 设置请求的查询参数。
  6. :headers - 设置请求的头部信息,可以是一个关联列表。
  7. :body - 设置请求的主体内容。
  8. :cookies - 设置请求的Cookie信息,可以是一个关联列表。
  9. :session - 设置请求的会话信息,可以是一个关联列表。
  10. :assigns - 设置请求的assigns信息,可以是一个关联列表。

下面是一个示例,展示如何使用Plug.Test.conn()设置测试连接中的操作:

代码语言:elixir
复制
defmodule MyControllerTest do
  use MyApp.ConnCase

  test "GET /example" do
    conn = conn()
           |> Plug.Test.conn(:get, "/example")
           |> Plug.Test.conn(:headers, [{"authorization", "Bearer token"}])
           |> Plug.Test.conn(:cookies, [{"session_id", "123456"}])
           |> Plug.Test.conn(:assigns, [current_user: %{"id" => 1}])

    conn = MyController.call(conn, :index)

    assert conn.status == 200
    assert conn.resp_body == "Hello, World!"
  end
end

在上面的示例中,我们首先使用conn()函数创建了一个基本的测试连接。然后,使用Plug.Test.conn()函数连续调用来设置请求的方法、路径、头部信息、Cookie信息和assigns信息。最后,我们调用了控制器的动作函数,并对返回的连接进行断言,以验证预期的结果。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在Ubuntu 16.04上使用Distillery和edeliver自动化Elixir-Phoenix部署

没有服务器同学可以在这里购买,不过我个人更推荐您使用免费腾讯云开发者实验室进行试验,学会安装后在购买服务器。 SSL证书:如何设置此证书取决于你是否拥有可解析该服务器域名。...如果你有域名,保护你网站最简单方法是使用腾讯云SSL证书服务,它提供免费可信证书。腾讯云SSL证书安装操作指南进行设置。...此外,请确保允许使用命令sudo ufw allow 4000在安装教程步骤7访问端口4000。这是我们在本教程中用于测试Phoenix端口。 在生产服务器上安装Nginx。 完全注册域名。...该User行让SSH知道要连接哪个用户,而IdentityFile告诉SSH使用哪个私钥文件。 保存更改并关闭文件。 最后,通过连接到生产服务器来测试配置。...告诉Phoenix如何在生产环境访问项目。

4.3K00
  • 如何在Ubuntu上部署Elixir-Phoenix MySQL应用程序

    介绍 在本教程,您将使用Phoenix-Ecto和Mariaex配置现有的Phoenix应用程序连接到MySQL数据库。Ecto是Phoenix应用程序广泛使用数据库包装器。...而是使用数据库驱动程序连接到所需数据库,然后使用数据库包装器查询数据库。 数据库驱动程序是一个Elixir应用程序,负责处理使用数据库普通任务,例如建立连接,关闭连接和执行查询。...第二步 - 在应用程序设置Ecto存储库 Phoenix应用程序通过名为Ecto数据库包装器访问数据库。数据库包装器以项目中Elixir模块形式实现。...项目定义init函数,这样如果环境变量DATABASE_URL存在,那么Ecto将使用环境变量配置连接到数据库,而不是使用Phoenix配置文件凭据。...如果您应用程序由于任何错误而无法编译,Ecto也会拒绝创建数据库。 现在您已将项目设置连接到数据库,甚至使用Ecto在开发计算机创建数据库,您可以继续修改服务器上数据库。

    6.1K20

    如何在Ubuntu 18.04上安装ElixirPhoenix Framework

    本教程将向您展示如何在Ubuntu 18.04服务器实例上安装ElixirPhoenix frameworks以进行开发。...安装 Elixir 使用 apt-get安装 Elixir: sudo apt-get install elixir 现在您可以验证Elixir安装: linuxidc@linuxidc:~/www.linuxidc.com...安装 Phoenix 如果我们刚刚第一次安装Elixir,我们还需要安装Hex包管理器。 Hex是运行Phoenix应用程序所必需,并且可以安装我们可能需要任何额外依赖项。...使用以下命令安装所需版本: nvm install 8.12.0 注意:如果您想使用其他版本,请将8.12.0替换为您想要版本。...Phoenix应用程序: mix phoenix.new ~/phoenix_project_test 使用上一步设置密码修改配置文件PostgreSQL密码: nano config/dev.exs

    1.4K30

    如何在 IntelliJ 上运行 ElixirPhoenix 程序?

    之后会选择项目的 SDK,安装 Elixir Plugin 可以检测到你安装 Elixir SDK,并且可以将这个 SDK 设置为默认 SDK。...点击 IntelliJ 窗口上方绿色按钮即可运行 hello.ex 文件 如何运行 Phoenix Elixir 插件同时也支持运行 Phoenix Web 框架,你需要先安装 Phoenix 并且通过命令行创建一个新项目并构建相关项目依赖...在安装了 Elixir 和 Erlang 插件前提下打开使用 IntelliJ 打开 Phoenix Web 项目,项目会自动设置 Elixir 和 Erlang SDK,如果没有你可以通过 File...External Helps Elixir 和 Erlang 插件 创建 Phoenix 项目使用命令 mix phx.new projectName mix deps.get 命令可以安装相关依赖...自定义 Phoenix 页面 lib 文件夹下保存着 Elixir 代码,config 文件夹下保存着各种配置,assets 文件夹下存放是静态文件。Phoenix 框架也是 MVC 架构。

    1.5K20

    Elixir, OTP, Ecto, 和 Phoenix 免费教程!

    今天,DailyDrip发布了五周免费内容,向人们介绍Elixir编程语言,并准备使用Ecto和Phoenix构建Web应用程序。...我们制作了25个短片(每个约5分钟),这将使你从“Elixir是什么东西”到“酷,我知道如何建立基本Phoenix WebApp”迅速。...Firestorm - 一个开源phoenix论坛 去年年底,我们注意到缺乏使用ElixirPhoenix实例项目。同时,我们对可用于将注释插入DailyDrip选项不满意。...我们正在以实践方式学习使用持续集成,持续部署和坚实测试套件等最佳实践来构建生产应用程序。 我们已经建立了一个Alpha版本Firestorm,同时在社区内进行dogfooding。...Week 2: 中级Elixir 在第二周,您将学习如何使用ExUnit编写测试,语言本身更多方面以及如何管理状态。

    1.8K60

    Elixir vs. Ruby和Phoenix vs. Rails:选择什么和为什么

    几年来,Web开发人员一直在积极讨论一种名为Elixir新编程语言及其最受欢迎Phoenix框架。 Elixir与Ruby和Phoenix vs....一些开发人员说这是Elixir巨大优势,因为函数式编程允许更短更精确代码,这也更容易测试和调试。然而,还有另一种观点认为Elixir是一种很难习惯非常小众语言。...无论如何,当谈到大型网络应用时,Elixir开发是一个合理选择,因为它运行在Erlang虚拟机上。...在以下文章阅读更详细Elixir语言评论: Elixir编程语言:为更好应用程序开发而知道事实 认识凤凰城 - Elixir最佳编程框架 如果你读过Elixir,那就意味着你也遇到过凤凰这个词...Phoenix是最受欢迎Web框架,使用Elixir构建,用于Elixir Web开发。 Phoenix框架由Chris McCord于2014年创建。

    2.5K00

    Ruby vs Elixir | 2022 该选哪个?

    分布式并发 也是由于 Erlang 在电信行业广泛应用,使得 Erlang 适合管理大量连接Elixir 也支持并发。Elixir 可以在单台或者多台机器上创建大量连接。...使用 Elixir 无需在应用程序架构添加更多服务器来满足越来越多用户产生带宽需求。...相关文档 Elixir 官方网站 上有大量 Elixir 使用文档,以及非常活跃 Elixir 社区,文档也可以从终端阅读,非常方便。...Phoenix 框架性能 Phoenix 是最流行 Elixir Web 开发框架,喜爱响应时间可以达到毫秒级。虽然 Rails 响应时间也可以达到毫秒,但是差了一个数量级。...Source: TIOBE Index for June 2022 此外,与知名度较低 Phoenix 相比,使用 Rails 可以获得更多支持和第三方库。

    1.6K10

    2017,忘掉「全栈」,迎向「一栈」!

    Phoenix 作为一款高性能 Web 开发框架受到广泛关注。可以遇见,在不就将来,Elixir + Phoenix 技术栈就会占据现有 Ruby + Rails 半壁江山。...Phoenix Framework — 新一代实时 Web 框架 可以看到,大家都对于ElixirPhoenix发展前景十分看好。...但是,使用Elixir你可以不借助外部工具直接部署一整套微服务,并自带了Docker提供各种容错分布式重启等功能。...Elixir + Phoenix 原版资料包! Elixir + Phoenix 价值 $200 精选原版技术资料,只需赞赏一杯咖啡钱(仅需15元),留下您邮箱地址,就将其发至您邮箱!...new in Ecto 2.0》-> Phoenix 数据操作库,like ORM but beyond 资料库持续更新...

    1.2K70

    从 Go 开发者角度看 Elixir 设计思想

    英文原文:Elixir concepts for Go developers 基于 Elixir Web 框架 Phoenix 受到了 Meteor 和 Rails 社区广泛关注,所以今天我们推荐这篇文章...本文内容目录如下: Elixir 是什么 弹性不可变性 模式匹配 原子 Processes 与 Goroutines Supervisors 结构体与协议 管线操作符|> 宏 标准库和 OTP Phoenix...BEAM 最后一些看法 这里节选「Elixir 是什么」和「Phoenix」两个章节,点击「阅读原文」查看完整文章!...Phoenix Phoenix 由另一个 Ruby 使用者 Chris McCord 创建,它是一个高效 web 框架,目的是成为 Elixir Rails。...它充分利用了 Plug 作为其核心思想,Plug 定义了中间件实现标准,并且使用 Ecto 作为数据库 ORM 层。

    1.1K30

    java使用jest连接操作Elasticsearch2.2.0索引

    前言 在了解jest框架前,楼主一直尝试用官方Elasticsearch java api连接es服务,可是,不知何故,一直报如下异常信息,谷歌了很久,都说是jvm版本不一致导致问题,可我是本地测试...org.elasticsearch.transport.TransportSerializationException: Failed to deserialize exception response from stream 我测试代码是参考官方...,感激不尽了,我es版本是2.2.0 进入正题 了解jest jest是一个基于 HTTP Rest 连接es服务api工具集,功能强大,能够使用es java api查询语句,...项目是开源,github地址:https://github.com/searchbox-io/Jest 我测试用例 分词器:ik,分词器地址:https://github.com/medcl...bulkBuilder.addAction(index); } client.execute(bulkBuilder.build()); client.shutdownClient(); } //搜索测试

    18720

    如何使用流程 DataObject 并为流程设置租户

    添加 dataObject 首先我们来看下,在流程绘制过程如何去添加 dataObject 对象。...这就是 dataObject 使用,其实非常 Easy!dataObject 平时主要可以用来定义一些全局属性。 3. 租户 说到这里,就顺便再来和小伙伴们聊一聊 Flowable 租户。...租户这个其实好理解,举个栗子: 假设我们现在有 A、B、C、D 四个子系统,四个子系统都要部署同一个名为 leave 流程,如何区分四个不同子系统流程呢?通过租户可以解决这个问题。...Flowable 租户其实很好理解,其实就是在流程,多一个一个 TenantID 加以区分每一个流程属于哪个租户。...当这个流程图部署成功之后,我们在流程定义表 ACT_RE_PROCDEF 可以看到刚刚设置租户 ID: 接下来我们需要启动流程实例时候,就不能单纯拿着流程部署 ID 去启动了,还得拿上流程租户

    95720

    Java8操作-基本使用&性能测试

    你已经看到我们是如何使用 map 方法来返回每个 Words 具体长度了,现在让我们来扩展一下:对于一个 Words 集合,我需要知道这个集合里一共有多少个不相同字符呢?...一言蔽之就是 flatMap 让你一个流每个值都转换成另一个六,然后把所有的流连接起来成为一个流,具体过程如下图: ?...你也见到过了使用 collect 来将流所有元素合并成一个 List。 接下来我们来接触更加复杂一些操作,比如 “挑出单词中长度最长单词” 或是 “计算所有单词总长度”。...在这段代码,我们一共使用了两个参数: sum:总和变量初始值,在这里是 0; x:用于接受 numbers 每一个元素,并与 sum 做加法操作不断迭代; 要是还能把所有的数字相乘,而不用复制粘贴这段代码...GC行为是Java很不好控制一块,为增加确定性,我们手动指定使用CMS收集器,并使用10GB固定大小堆内存。

    1K30

    Java8操作-基本使用&性能测试

    你已经看到我们是如何使用 map 方法来返回每个 Words 具体长度了,现在让我们来扩展一下:对于一个 Words 集合,我需要知道这个集合里一共有多少个不相同字符呢?...一言蔽之就是 flatMap 让你一个流每个值都转换成另一个六,然后把所有的流连接起来成为一个流,具体过程如下图: ?...你也见到过了使用 collect 来将流所有元素合并成一个 List。 接下来我们来接触更加复杂一些操作,比如 “挑出单词中长度最长单词” 或是 “计算所有单词总长度”。...在这段代码,我们一共使用了两个参数: sum:总和变量初始值,在这里是 0; x:用于接受 numbers 每一个元素,并与 sum 做加法操作不断迭代; 要是还能把所有的数字相乘,而不用复制粘贴这段代码...GC行为是Java很不好控制一块,为增加确定性,我们手动指定使用CMS收集器,并使用10GB固定大小堆内存。

    1.1K10

    网站建设设置文字样式为pg 具体如何操作

    相信不少人都想要拥有一个属于自己网站,然而建设一个属于自己网站并不是一件那么容易事。在网站建设中会遇到很多问题,例如网站文字样式设置问题。那么,网站建设设置文字样式为pg如何设置?...网站建设设置文字样式为pg如何设置 网站设置模板中有关于设置文字样式选择,里面包含了文字样式几种模板,在模板寻找名为pg样式。...如果命令没有出现pg文字样式,就需要自己手动创建一个新命令,为网站文字设置出一个名为pg样式。新命令创建好后,就可以自动生成新名为pg文字样式,网站建设者就可以直接使用这个新样式了。...网站建设设置文字样式为pg具体如何操作 首先,网站建设者需要在电脑里安装一个命令创建软件,用来设置字体样式。...全部字母都在创建命令窗口输入完毕后,按下键盘回车键,文字样式pg就设置好了。 综上所述,关于网站建设设置文字样式为pg问题,其实只要掌握了如何创建新字体样式命令,就不是太难了。

    1.3K40

    ​在群晖docker上装elmlang可视调试编码器ellie

    下面介绍如何将其安装到docker下。...代码执行结果反馈(webpack框架),而elixir负责是前端(phoenix框架),负责你打开ellie时那个界面,总之很绕。。。...独立生成image和不同entrypoint run运行,而在prod前后端整合到了elixir image下,它们最大区别是,dev环境下webpack需要附加express 8080持续运行...这就需要设置SERVER_HOST=ip变量了(这个ip是你部署ellie所在机器外网IP或被访问IP:4000所在IP),这个变量不能放在dockerfile,也不能放在run.sh(因为这二个文件要做进...只是它使用aus联合文件系统我一直都不太喜欢,因为会带来污染问题和以上说到编排dockerfile时理解不便,突然想到联合文件系统会不会是客户端安卓应用缓存清理技术,其存储,系统/应用双清技术会不会也与它有关

    1.2K60

    rails, django, phoenix,你们错了

    PhoenixElixir 大抵也是如此。 在 django / phoenix 上能看得出 rails 很多影子。...开发者效率高么?很高。代码效率高么?rails / django 虽让人诟病,但 phoenix 很高,在 benchmark 狂胜各大 framework。 架构优秀么?...经典 MVC 分层设计是一种纵向解耦,数据有序流动,各层只管自己工作,「上帝归上帝,凯撒归凯撒」,不必关心其他层次如何实现。...User model 甚至不该看见 Content model,也看不见作为连接 enroll 表。 这是横向解耦。...添加新服务并不会影响已有的服务,我们甚至可以撰写一个已有服务全新升级替代版,把部分流量导入新服务,测试良好后把旧服务直接删掉。 这样做另一个好处是重归以业务为中心正道。

    1.8K70

    Docker - 如何使用SSH连接到正在运行容器

    本篇文章主要介绍了如何使用SSH将你Docker容器与其他Docker容器进行连接方法,如果我忽略了一个或多个重点,请随意评论/建议。...以下是本篇文章几个重要步骤: 如何安装SSH 在现有容器上运行SSH方法 使用SSH连接到其他运行容器方法 如何安装SSH 如果你已经有一个正在运行docker容器,并且你想通过SSH...下面教你如何打开22端口: 从容器退出 使用以下命令提交docker容器镜像:docker commit 使用以下命令运行一个新容器...SSH连接到其他运行容器方法 按照上述步骤在现有容器上安装了SSH并打开了22端口之后,请执行以下操作以从另一个容器测试SSH连接: 按照以上步骤安装SSH,配置并公开端口22 如果要在连接时不需要输入密码....ssh / authorized_keys && echo "密钥已复制" 执行上面的命令后应该会打印 “密钥已复制” 完成上述操作后,继续使用SCP命令测试SSH连接: scp /tmp/somefile.txt

    5.3K70
    领券