gpt4 book ai didi

bdd - 如何将空值输入到 specflow 步骤定义表中

转载 作者:行者123 更新时间:2023-12-04 03:20:03 26 4
gpt4 key购买 nike

如何通过表格在 Specflow 中输入空值?

让我们看一个过于简单的例子:

When a tire is attached to a car
| CarId | TireModel | FabricationDate | Batch |
| 1 | Nokian Hakka R | 2015-09-1 | |

Batch 列中的空字符串被 specflow 解释为文本,因此,空字符串。是否有特殊语法将该列标记为空?

最佳答案

您可以创建自己的 IValueRetriever 并用您的替换默认值

public class StringValueRetriver : IValueRetriever
{
public bool CanRetrieve(KeyValuePair<string, string> keyValuePair, Type targetType, Type propertyType)
{
return propertyType == typeof(string);
}

public object Retrieve(KeyValuePair<string, string> keyValuePair, Type targetType, Type propertyType)
{
return string.IsNullOrEmpty(keyValuePair.Value) ? null : keyValuePair.Value;
}
}

在你的场景步骤中的一些地方

[BeforeScenario]
public void BeforeScenario()
{
Service.Instance.ValueRetrievers.Unregister<TechTalk.SpecFlow.Assist.ValueRetrievers.StringValueRetriever>();
Service.Instance.ValueRetrievers.Register(new StringValueRetriver());
}

旧语法:

[BeforeScenario]
public void BeforeScenario()
{
var defaultStringValueRetriever = Service.Instance.ValueRetrievers.FirstOrDefault(vr => vr is TechTalk.SpecFlow.Assist.ValueRetrievers.StringValueRetriever);
if (defaultStringValueRetriever != null)
{
Service.Instance.UnregisterValueRetriever(defaultStringValueRetriever);
Service.Instance.RegisterValueRetriever(new StringValueRetriver());
}
}

关于bdd - 如何将空值输入到 specflow 步骤定义表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32908611/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com