gpt4 book ai didi

c# - 自动测试属性 getter/setter

转载 作者:太空狗 更新时间:2023-10-30 00:34:36 25 4
gpt4 key购买 nike

我们为域对象的许多属性使用支持字段,例如:

protected string _firstname;

public virtual string Firstname
{
get { return _firstname; }
set { _firstname = value; }
}

我偶尔会犯下如下示例中的愚蠢拼写错误,我想编写一个测试来验证所有这些属性,而不是手动对每个对象进行测试。

public virtual string Firstname
{
get { return _firstname; }
set { _firstname = Firstname; }
}

是否容易编写或是否已经存在一个库来测试这些支持字段是否正确获取/设置?这只会在具有 setter 和(大概)使用驼峰式下划线匹配属性名称的支持字段上运行

最佳答案

另一种解决方案是使用自动属性来消除此问题:

public virtual string FirstName { get; set; }

更新(查看评论,似乎需要支持字段):另一种可能性是生成 pocos。简单的 t4 模板 'Person.tt'

<#@ template language="C#" #>
<# var pocos = new [] {
Tuple.Create("FirstName", "string"),
Tuple.Create("LastName", "string"),
Tuple.Create("Age", "int")}; #>
public partial class Person {
<# foreach(var t in pocos) {#>

protected <#= t.Item2#> _<#= t.Item1.ToLowerInvariant()#>;
public virtual <#= t.Item2#> <#= t.Item1#>
{
get { return _<#= t.Item1.ToLowerInvariant()#>; }
set { _<#= t.Item1.ToLowerInvariant()#> = value; }
}
<#}#>
}

现在这当然会带来与它解决的问题一样多的问题,但它可能值得一看......也许:)

关于c# - 自动测试属性 getter/setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147096/

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