跳过代码行 - CSV相关

时间:2015-10-23 17:19:35

标签: c# csv coded-ui-tests

这是一个更普遍的问题,但在我的情况下,它可能更具体(我当然希望)

我正在使用csv数据替换输入控件/元素中的值。

问题在于,根据csv文件中的某些列,页面可能有不同的控件。

示例:

 this.UIMap.ICParams.UITboxQuantityEditText = TestContext.DataRow["qtd_c_1"].ToString();
 this.UIMap.ICParams.UITboxQuantityEdit1Text = TestContext.DataRow["qtd_c_2"].ToString();

这会用csv中的2列替换2个字段中记录的值,但是我可能只有第一个控件(这会使代码行this.UIMap.ICParams.UITboxQuantityEdit1Text = TestContext.DataRow["qtd_c_2"].ToString();以及csv列qtd_c_2无用,因为控件不存在因此导致测试崩溃)

我已尝试像这样在csv文件中设置值(Spaced out,因此它看起来更干净):

[col1][qtd_c_1][qtd_c_2][col4][col5]
[  a ][   5   ][       ][  d ][  b ] <--------
[  c ][   4   ][   2   ][  x ][  z ]

正如您所看到的,qtd_c_2列是空白的,我输入的内容如下:a,,d(逗号之间没有任何内容)与a,"",d不同

有没有办法跳过代码行或忽略csv列?

我知道continue语句,但代码不是显式的循环(在内部,但这是另一回事)。

提前致谢!

1 个答案:

答案 0 :(得分:0)

这可能不是我试图理解你所说的答案的答案。

[col1][col2][col3][col4][col5]
[a   ][5   ][    ][    ][  b ]
[    ][    ][    ][    ][    ]


UITboxQuantityEditText = TestContext.DataRow["col1"].ToString();
UITboxQuantityEdit1Text = TestContext.DataRow["col3"].ToString();

鉴于上述情况...为什么不检查它的null是否为null或将其设置为null或忽略它,如果它的null为空,则基于它。

var valueCol1 = TestContext.DataRow["col1"];
if (valueCol1 == DBNull.Value)
        // do something
    else
        // do something else

显然,可以通过创建为您执行此操作的功能和扩展来重构和改进,我只是想了解这一要求。