gpt4 book ai didi

c# - .Net 中的单元测试属性?

转载 作者:太空宇宙 更新时间:2023-11-03 17:07:21 24 4
gpt4 key购买 nike

我正在开发一个我想在开源中发布的库。我已经开始为代码编写测试,我想知道我应该如何测试 .Net 对象中的属性。假设我有以下内容:


public class Person{
#region variables
private string _name = String.Empty;
private string _surname = String.Empty;
#region properties
public string Name{
get{
return _name;
}
}
public string Surname{
get{
return _surname;
}
set{
_surname = value;
}
}
}

我有两个与代码相关的问题:

  1. 如何对只有 getter 的属性进行单元测试(如示例中的名称)
  2. 如何使用 setter 和 getter 对属性进行单元测试(如示例中的姓氏)

我想测试这么简单的属性,因为我已经在其他代码中发现错误,Itellinsense 执行了错误的自动完成并且属性没有返回正确的变量。

更新:

我不是在谈论示例中的简单属性,它们背后确实有一些逻辑并且很难调试。编写一个使用 setter 来测试 getter 的测试是不好的,反之亦然,因为如果失败我不知道应该归咎于哪个方法。我正在使用属性,因为它们是作为公共(public)变量添加的,后来必须添加更多逻辑。

最佳答案

Don's waste your time on writing silly tests for getters and setters.

Another test will probably set the Name and then get that property so you will have code coverage for the getter.

您应该测试任何面向公众的东西,包括属性。如果您不测试某个属性,您将面临有人可能会在其中添加一些逻辑从而破坏功能的风险。

此外,您不应该依赖它在其他测试中的测试。这会使您的测试变得脆弱,并且更难确定问题出在哪里,因为测试将测试不止一件事。

关于c# - .Net 中的单元测试属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/593879/

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