将流从测试用例传递到方法

时间:2020-03-24 11:35:50

标签: c# unit-testing stream moq

我正在为API编写测试用例。

在API中,我正在HttpRequest主体中获取内存流。在以下代码段中,reqHttpRequest

的实例
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
dynamic data = JsonConvert.DeserializeObject(requestBody);

所以,在嘲笑时我有以下代码:

Data data = new Data()
{
    width = 400,
    height = 600,
    text = "text",
    barcodeformat = ZXing.BarcodeFormat.CODE_128.ToString()
};

byte[] inputData = null;
BinaryFormatter bf = new BinaryFormatter();
using (var ms = new MemoryStream())
{
    bf.Serialize(ms, data);
    inputData = ms.ToArray();
}
var mockHttp = new Mock<HttpRequest>();
mockHttp.Setup(x => x.Body).Returns(new MemoryStream(inputData));

但是在API代码中,我在data中得到的值是空字符串。 请帮助我了解我要去哪里。

1 个答案:

答案 0 :(得分:1)

JsonConvert需要json,但是这里没有json。