当前位置: 首页 > 编程语言 > C#

C#unittestingStreamWriter参数分享

时间:2023-04-10 17:54:22 C#

C#unittestingStreamWriter参数我有一堆类,都实现了一个接口,其中一个参数是一个StreamWriter。我需要检查StreamWriter的内容。我试图找到一种方法来避免在测试服务器上写入文本文件并打开它们来检查内容。有没有办法快速将StreamWriter内容/流转换为StringBuilder变量?您无法检查StreamWriter。您可以检查它正在写入的基础流。所以你可以在单元测试中使用MemoryStream并将这个StreamWriter指向它。写完后,您可以从中读取。[TestMethod]publicvoidSomeMethod_Should_Write_Some_Expected_Output(){//安排使用(varstream=newMemoryStream())使用(varwriter=newStreamWriter(stream)){//actsut。一些方法(作者);//断言字符串actual=Encoding.UTF8.GetString(stream.ToArray());Assert.AreEqual("一些预期输出",actual);如果可能,我建议将参数更改为TextWriter-此时您可以使用StringWriter。或者,您可以围绕MemoryStream创建一个StreamWriter,然后测试该MemoryStream的内容(通过倒带或仅调用ToArray()将完整内容作为字节数组获取。如果您真的想测试文本,请使用StringWriter肯定更容易。您可以将其替换为写入MemoryStream的StreamWriter。在这种情况下,您需要模拟测试用例。您可以使用像rhinomocks这样的框架。mocking框架的好处是可以验证一个对象的内容,但是又不用去打服务器,也不用占用服务器资源。这个链接会给你一个基本的例子:http://www.codeproject.com/Articles/10719/Introducing-Rhino-Mocks以上就是C#学习教程的全部内容:C#unittestingStreamWriter参数分享,如果有用给大家并且需要了解更多C#学习教程,希望大家多多关注~本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: