C#验证场景下多文件批量读取及方法间数据调用咨询
我来帮你调整代码实现批量文件读取,同时解决验证方法里获取实际数据的问题。先看修正后的完整代码,再一步步解释改动点:
using System.Text; using System.Collections.Generic; using NUnit.Framework; // 假设你用的是NUnit断言,根据实际测试框架调整 public class InventoryValidator { // 单文件读取:获取单个文件的实际测量数据 public string GetActualItemData(string processFilePath) { // 用字符串插值让命令更清晰,路径有空格时记得加转义引号 var command = $"cat \"{processFilePath}\""; var actualItemData = Common.LinuxCommandExecutor.RunLinuxcommand(command); return actualItemData; } // 批量文件读取:循环读取多个文件,返回合并后的所有数据(可按需改成返回List<string>) public string GetActualItemData(IEnumerable<string> filePaths) { StringBuilder allActualData = new StringBuilder(); foreach (var filePath in filePaths) { var singleFileData = GetActualItemData(filePath); allActualData.AppendLine(singleFileData); } return allActualData.ToString().Trim(); // 移除末尾多余换行符 } // 单文件验证:调用读取方法获取实际值,完成断言 public void ValidateInventoryMeasurementValue(string expected, string itemStatus, string filePath) { var actual = GetActualItemData(filePath); Assert.AreEqual(expected, actual); } // 批量验证(可选):针对多个文件的合并数据做断言 public void ValidateInventoryMeasurementValue(string expected, string itemStatus, IEnumerable<string> filePaths) { var actual = GetActualItemData(filePaths); Assert.AreEqual(expected, actual); } }
关键改动说明
修正语法与命名规范
把原来写法不规范的validateMeasurement重命名为GetActualItemData,更符合C#的命名约定,同时修复了方法结构、字符串引号等基础语法问题。实现批量读取逻辑
新增了接受文件路径集合的重载方法,用StringBuilder高效拼接多个文件的内容;如果需要单独验证每个文件的结果,也可以把返回值改成List<string>,然后循环逐个断言。解决变量作用域问题
原来的actualItemData是局部变量,validateInventoryMeasurementValue无法直接访问。现在通过调用公共的读取方法获取数据,既符合封装原则,也解决了跨方法数据传递的问题。提升代码健壮性
给Linux命令里的文件路径加了转义引号\",避免路径包含空格时命令执行失败;用字符串插值替代字符串拼接,代码可读性更强。灵活适配验证场景
提供了单文件和批量文件两种验证方法,你可以根据测试需求选择使用——比如批量读取目录下所有.ovr文件,只需要传入路径集合即可。
内容的提问来源于stack exchange,提问作者J OpenDock
相关产品推荐
相关产品推荐

