编码的UI C#:向数据表添加动态日期

时间:2018-08-01 03:42:38

标签: c# coded-ui-tests

我正在为按部分显示数据的网站进行ui编码测试:

例如:

第1部分:显示链接1,链接2,链接3

第2部分:显示链接3,链接5,链接6

我想验证网站是否如上正确显示数据,因此我决定将原始数据添加到具有以下格式的csv文件中:(注意:这只是一个示例,每个链接的内容都与其他不同)< / p>

第1节,链接1

第1节,链接2

第1节,链接3

第2节,链接4

第2节,链接5

第3节,链接6

然后,我将csv文件中的数据加载到datatable中,并将datatable中的每一行与网站中的实际数据进行比较。

这很完美,直到我发现某些链接包含一些动态日期(某些包含今天的日期,一些包含以前的日期,它们经常更改)

我在考虑将一些变量添加到csv文件并在其中插入日期的解决方案。

例如,我将变量添加到csv中,如下所示:

第1节,链接1 {0}

第1节,链接2 {1}

第1节,链接3 {2}

第2节,链接4

第2节,链接5

第3节,链接6

用实际日期替换它们,但我不知道如何。

在我用来将csv文件中的数据加载到datatable中的代码下面:

public System.Data.DataTable ConvertCSVtoDataTable(string pathFile)
        {
            System.Data.DataTable dt = new System.Data.DataTable();
            using (StreamReader sr = new StreamReader(pathFile))
            {
                string[] headers = sr.ReadLine().Split(',');
                foreach (string header in headers)
                {
                    dt.Columns.Add(header);
                }
                while (!sr.EndOfStream)
                {
                    string[] rows = sr.ReadLine().Split(',');
                    System.Data.DataRow dr = dt.NewRow();
                    for (int i = 0; i < headers.Length; i++)
                    {
                        dr[i] = rows[i];
                    }

                    if (rows.Length != headers.Length)
                    {
                        for (int i = headers.Length; i < rows.Length; i++)
                        {
                            dr[headers.Length - 1] = dr[headers.Length - 1] + "," + rows[i];
                        }
                    }

                    dt.Rows.Add(dr);
                }

            }
            return dt;
        }

DataTable table = ConvertCSVtoDataTable(projectPath);

请帮助我。谢谢

1 个答案:

答案 0 :(得分:0)

您可以将包含dr[i] = rows[i];的循环修改为。

int drIndex = 0;
for (int i = 0; i < headers.Length; i++)
{
    dr[drIndex] = rows[i];
    drIndex++;

    if (i == indexForInsertingTheDate)
    {
        dr[drIndex] = theDateToBeInserted;
        drIndex++;
    }
}

或者,您可以将循环体从简单的dr[i] = rows[i];更改为:

string field = rows[i];
if (field.StartsWith("this is test "))
{
    field += theDateToBeInserted;
}
dr[i] = field;

该问题未指定要使用的日期。如果需要今天的日期,则可以将theDateToBeInserted设置为DateTime.Now.ToString("mm/dd/yyyy")