使用laravel进行单元测试,使用Json参数调用

使用laravel进行单元测试,使用Json参数调用,json,unit-testing,laravel,Json,Unit Testing,Laravel,我试图使用json对象作为testclass的参数进行put调用。我该怎么做?我在文档中找不到任何东西。如果我使用Chrome Advanced Rest客户端和完全相同的json对象进行相同的调用,它就会工作。但我不知道如何从测试中调用,因为如果我使用Json对象调用,它会说不允许使用字符串调用,如果我使用数组尝试调用,它会说“UnexpectedValueException:响应内容必须是实现_toString(),“boolean”gived的字符串或对象 请帮帮我,我吓坏了。:) 试试这

我试图使用json对象作为testclass的参数进行put调用。我该怎么做?我在文档中找不到任何东西。如果我使用Chrome Advanced Rest客户端和完全相同的json对象进行相同的调用,它就会工作。但我不知道如何从测试中调用,因为如果我使用Json对象调用,它会说不允许使用字符串调用,如果我使用数组尝试调用,它会说“UnexpectedValueException:响应内容必须是实现_toString(),“boolean”gived的字符串或对象 请帮帮我,我吓坏了。:)

试试这个:

    $this->call('PUT','stomt/1', array("text" => "test"));
您的想法是正确的,但创建阵列的方式却不正确。即:

    array('{"text" : "test"}')

无法在PHP中正确创建数组。

非常感谢,但它仍会引发相同的异常。如果我执行get-order-delete调用,一切正常,但一旦我尝试发布或放置某些内容,它就不起作用。嘿,你能粘贴在执行上述代码时得到的错误中吗?错误在问题中,它的“UnexpectedValueException:响应内容必须是实现u-toString()”的字符串或对象,“boolean”给定该错误向我表明,对“stomt/1”的PUT调用没有返回字符串。那条路线指向哪里?TestCase调用方法返回一个Illumb\Http\Response对象,该对象期望其内容为字符串。因此,请仔细检查“stomt/1”的PUT路由调用的方法。它是返回字符串还是布尔值?如果它返回的不是字符串,则必须更改返回值(或重新考虑测试策略)。希望这能奏效!
    array('{"text" : "test"}')