2017-08-11 84 views
0

单元测试我在单元测试新的,我尝试测试我的解析器:文本解析器

public static List<tranche> Parse22(string record) 
{ 
    List <tranche> Tranche = new List<tranche>(); 
    foreach (var i in record) 
    { 
     var ts = new tranche(); 
     ts.dealer_name = line.Substring(2, 5); 
     ts.invoice = line.Substring(7, 7); 
     ts.amount = Decimal.Parse(line.Substring(14, 13)); 
     ts.vin = line.Substring(46, 17); 
     ts.model = line.Substring(63, 4); 
     ts.registration = line.Substring(72, 10); 
     ts.brutto = Decimal.Parse(line.Substring(95, 13)); 
     Tranche.Add(ts); 
    } 
    return Tranche; 
} 

我想测试dealer_name和VIN是正确的。但我不明白“断言”应该是什么。

[TestClass] 
public class ParserTest 
{ 
    [TestMethod] 
    public void Parse_LineStarts22_ReturnsVINandDealerNameCorrect() 
    { 
     string record = testString; 
     var res = myParser.Parse22(record); 

     Assert.AreEqual() //??? 
    } 
} 
+0

什么是'行',为什么迭代字符串? –

回答

2

的方法有两个参数:期望值实际值

因为资源是List你要访问你想要通过索引检查的项目,然后你想要的欢迎使用属性去检查。

这是您的res List中第一项的示例。

Assert.AreEqual("expectedDealerName", res[0].dealer_name); 
Assert.AreEqual("expectedVin", res[0].vin); 

欲了解更多信息,看看在Assert.AreEqual Method

在我的例子AreEqual(Object, Object)方法将被使用。

验证两个指定的对象是否相等。如果 的对象不相等,断言失败。