我需要为一个从文本文件中获取流的方法编写单元测试。我想要做类似于这样的事情:
Stream s = GenerateStreamFromString("a,b \n c,d");
我需要为一个从文本文件中获取流的方法编写单元测试。我想要做类似于这样的事情:
Stream s = GenerateStreamFromString("a,b \n c,d");
现在使用C# 11,我们可以在一行代码中完成此操作:
var ms = new MemoryStream("some string"u8.ToArray());
关于 Utf8 字符串字面量的详细信息可以在这里找到:https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/proposals/csharp-11.0/utf8-string-literals#detailed-design
Stream stream = ToStream(""); //passing your string input.
public static Stream ToStream(string str)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(str);
writer.Flush();
stream.Position = 0;
return stream;
}
public static byte[] GetBytes(this string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
public static Stream ToStream(this string str)
{
Stream stringStream = new MemoryStream();
stringStream.Read(str.GetBytes(), 0, str.Length);
return stringStream;
}