我有一个巨大的JSON文件作为休眠api调用的有效负载进行测试。我试过像:
public void RestTest() throws Exception {
File file = new File("/Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json");
String content = null;
given().body(file).with().contentType("application/json").then().expect().
statusCode(200).
body(equalTo("true")).when().post("http://devsearch");
}
并收到错误:
java.lang.UnsupportedOperationException: Internal error: Can't encode /Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json to JSON.
我可以通过读取文件并将正文作为字符串传递来运行,但是我看到我可以直接传递文件对象,但这不起作用。
经过充分的研究,它似乎无法运作。我已经解决了问题。 https://github.com/jayway/rest-assured/issues/674
答案 0 :(得分:3)
我使用通用方法从json读取并将其作为字符串发送,即:
public String generateStringFromResource(String path) throws IOException {
return new String(Files.readAllBytes(Paths.get(path)));
}
所以在你的例子中:
@Test
public void post() throws IOException {
String jsonBody = generateStringFromResource("/Users/bmishra/Code_Center/stash/experiments/src/main/resources/Search.json")
given().
contentType("application/json").
body(jsonBody).
when().
post("http://dev/search").
then().
statusCode(200).
body(containsString("true"));
}
答案 1 :(得分:3)
与有保证的团队发布问题后。我有一个修复。我测试了修复程序,问题现在已经解决了。
来自放心的消息:
现在应该修复它,所以我现在部署了一个应该解决这个问题的新快照。添加以下Maven存储库后,请尝试使用版本2.9.1-SNAPSHOT:
<Window.Resources>
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
</Window.Resources>
...
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Visibility"
Value="{Binding IsVisible,
Converter={StaticResource BooleanToVisibilityConverter}}"/>
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
有关详细信息:https://github.com/jayway/rest-assured/issues/674#issuecomment-210455811