传递价值所以我有一个方法

时间:2014-11-03 23:11:07

标签: c# specflow

我有一个场景,我有5个可能的客户ID。现在我使用5种方法,但除了customerid值之外,所有代码都是相同的。我想清理我的代码,所以我没有使用5种方法,而是使用条件语句的一种方法。我猜我有办法在specflow中写这个吗?我不确定如何写出来。

作为一个例子。

Feature:
Given I am using customerid(111) 

Step:
[Given]
public void Given_I_am_using_customer(int)
if (number = 111)
{
do this
}
else if  (number = 222)
{
do this
}
else if  (number = 333)
{
do this
}
}

1 个答案:

答案 0 :(得分:0)

如果是我,我会这样做:

[Given]
public void Given_I_am_using_customer(Customer customer)
{
     ///do some stuff with the customer
}

[StepArgumentTransformation]
public Customer GetCustomer(int id)
{
    switch (id)
        case 111
            return new Customer();// create a '111' customer here
        case 222
            return new Customer();// create a '222' customer here
        case 333
            return new Customer();// create a '333' customer here
        case 444
            return new Customer();// create a '444' customer here
        etc
}