Yog*_*ise 12 c# unit-testing streamwriter
我有一堆所有实现接口的类,其中一个参数是StreamWriter.
我需要检查StreamWriter的内容.
我试图找到一种方法来避免在测试服务器上编写文本文件并打开它们来检查内容.
有没有办法快速将StreamWriter内容/流转换为StringBuilder变量?
Dar*_*rov 18
您无法查询的StreamWriter.您可以检查它正在写入的基础流.因此,您可以MemoryStream在单元测试中使用a 并将其指向StreamWriter它.一旦完成写作,你就可以从中读取.
[TestMethod]
public void SomeMethod_Should_Write_Some_Expected_Output()
{
// arrange
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
// act
sut.SomeMethod(writer);
// assert
string actual = Encoding.UTF8.GetString(stream.ToArray());
Assert.AreEqual("some expected output", actual);
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 12
我建议您TextWriter尽可能将参数更改为- 此时您可以使用a StringWriter.
或者,你可以创建一个StreamWritera MemoryStream,然后测试它的内容MemoryStream(通过倒带,或者只是调用ToArray()将完整的内容作为字节数组.如果你真的想要测试文本,那么使用它肯定更简单a StringWriter.
| 归档时间: |
|
| 查看次数: |
6353 次 |
| 最近记录: |