首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(RuntimeError)期望有响应的连接

(RuntimeError)期望有响应的连接
EN

Stack Overflow用户
提问于 2015-05-05 21:46:53
回答 1查看 1K关注 0票数 8

我是菲尼克斯框架的新用户,我正在尝试设置一个简单的HTTP服务,该服务对传入的数据执行计算并返回结果,但我得到了以下错误:

代码语言:javascript
复制
** (RuntimeError) expected connection to have a response but no response was set/sent
 stacktrace:
   (phoenix) lib/phoenix/conn_test.ex:311: Phoenix.ConnTest.response/2
   (phoenix) lib/phoenix/conn_test.ex:366: Phoenix.ConnTest.json_response/2
   test/controllers/translation_controller_test.exs:20

我的测试用例:

代码语言:javascript
复制
test "simple POST" do
  post conn(), "/api/v1/foo", %{"request" => "bar"}
  IO.inspect body = json_response(conn, 200)
end

我的路由器定义:

代码语言:javascript
复制
scope "/api", MyWeb do
  pipe_through :api

  post "/v1/foo", TranslationController, :transform
end

我的控制器:

代码语言:javascript
复制
def transform(conn, params) do
  doc = Map.get(params, "request")
  json conn, %{"response" => "grill"}
end

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-05 22:14:27

在您的测试中,您使用Plug.Test.conn/4获取Plug.Conn结构并将其作为参数传递给post。但是,您不会将结果存储在名为conn的变量中。

这意味着当检查conn时,第二次使用json_response实际上是对Plug.Test.conn/4的第二次调用。

试一试:

代码语言:javascript
复制
test "simple POST" do
  conn = post conn(), "/api/v1/foo", %{"request" => "bar"}
  assert json_response(conn, 200) == <whatever the expected JSON should be>
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30063819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档