这是一个更普遍的问题,但在我的情况下,它可能更具体(我当然希望)
我正在使用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
语句,但代码不是显式的循环(在内部,但这是另一回事)。
提前致谢!
答案 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
显然,可以通过创建为您执行此操作的功能和扩展来重构和改进,我只是想了解这一要求。