读取specflow中的表数据时,开始时未获取零

时间:2019-06-27 09:55:17

标签: specflow

我想从specflow功能文件中读取表数据。

表值为'000085'

当我从表格中创建销售报价时:

  

|客户帐户|

     

| 000085 |

//Code:

 public void CreateSalesQuotation(Table table)
        {
           dynamic tableData = table.CreateDynamicInstance();
           int x = tableData.CustomerAccount;

        }

结果:     预期值为000085,但我在x变量中获得的实际值为85

2 个答案:

答案 0 :(得分:0)

有两种解决方案:从一开始就将其用作字符串。由于可能在数据库中,它也是char或varchar(类似于字符串)。

string x = tableData.CustomerAccount;
//value is 000085

或者您可以将整数操纵为带有前导零的字符串。

 int x = tableData.CustomerAccount;
 //now it is 85
 string y = x.ToString();
 //we convert to string so we can use padleft
 string z = y.PadLeft(2, '0');
 //this will add 2 zeros to the beginning of the string. 

当然,您需要优化最后一位,以使前导零正确。

答案 1 :(得分:0)

specflow的版本是什么?

最好使用 CreateInstance 而不是 CreateDynamicInstance 来避免对字符串进行额外的操作。

public void CreateSalesQuotation(Table table)
        {
            var tableData = table.CreateInstance<Customer>();
            var value = tableData.CustomerAccount;
        }

 internal class Customer
    {
        public string CustomerAccount { get; set; }
    }

结果:期望值为000085,实际值为000085