如何在单元测试中访问字典内File类对象属性并执行断言
单元测试验证字典中File对象属性的方法
1. 获取字典中的File对象
首先通过字典的键来取出目标File实例,推荐用TryGetValue避免键不存在时抛出异常:
// 假设目标键为"testFolder" if (mydict.TryGetValue("testFolder", out File targetFile)) { // 后续断言逻辑写在这里 } else { Assert.Fail("字典中不存在指定键的File对象"); }
2. 用Assert.IsNotNull验证属性非空
针对XML解析得到的属性,先验证其不为null:
Assert.IsNotNull(targetFile.First, "First属性不应为null"); Assert.IsNotNull(targetFile.Last, "Last属性不应为null");
3. 用Assert.AreEqual验证属性值正确性
结合XML中的预期值,验证属性值是否匹配:
// 假设XML中First属性的预期值为"Alice" Assert.AreEqual("Alice", targetFile.First, "First属性值与预期不符"); // 假设XML中Last属性的预期值为"Smith" Assert.AreEqual("Smith", targetFile.Last, "Last属性值与预期不符");
完整单元测试示例
[TestClass] public class FileDictionaryTest { [TestMethod] public void CheckFilePropertiesInDictionary() { // 模拟XML解析并初始化字典 Dictionary<string, File> mydict = LoadDictionaryFromXml(); // 获取目标File对象 if (mydict.TryGetValue("userFolder", out File target)) { // 验证属性非空 Assert.IsNotNull(target.First); Assert.IsNotNull(target.Last); // 验证属性值 Assert.AreEqual("Bob", target.First); Assert.AreEqual("Brown", target.Last); } else { Assert.Fail("未找到键为'userFolder'的File对象"); } } // 模拟从XML加载字典的方法 private Dictionary<string, File> LoadDictionaryFromXml() { var dict = new Dictionary<string, File>(); var testFile = new File(); testFile.First = "Bob"; testFile.Last = "Brown"; dict.Add("userFolder", testFile); return dict; } }
内容的提问来源于stack exchange,提问作者Sean Davis
相关产品推荐
相关产品推荐

