【问题标题】:How to unit test JsonProperty name如何对 JsonProperty 名称进行单元测试
【发布时间】:2020-03-14 14:10:12
【问题描述】:

假设我有一个这样的模型:

public class Person
{
    [JsonProperty("firstName")]
    public string FirstName{ get; set; }
}

有没有办法测试该类Person 有一个名为FirstName 的属性,其对应的json 属性名称是firstName

【问题讨论】:

标签: c# nunit


【解决方案1】:

好吧,你可以用反射来做到这一点,@Pavel Anikhouski 给你的链接可能会对你有所帮助,但我认为使用反射总是一件很麻烦的事情。有时候你无法避免,但如果可以的话,你应该避免。

另一方面,单元测试不是为了测试你的代码/应用程序的设计(你现在想要实现的),而是测试它的功能。

“通过创建和运行单元测试来检查您的代码是否按预期工作。它被称为单元测试,因为您将程序的功能分解离散的可测试行为 可以作为单独的单元进行测试。” https://docs.microsoft.com/en-us/visualstudio/test/unit-test-basics?view=vs-2019

在类中拥有属性或属性既不是功能也不是行为。

老实说,我没有看到任何用例,您想在何时何地实现这样的目标。如果你想测试一个类是否有一个属性,为什么要写几行代码来检查一个特定的属性?直接打开类代码看看有没有这个属性,没有就写在代码里。

【讨论】:

  • “老实说,我没有看到任何你想在何时何地实现这样的用例”,功能是否仅由函数定义?对我而言,此类的功能取决于其属性的 JSON 属性名称。
  • 是的,我会说。一个类本身不能运行,你需要实例化它并调用它的成员方法(或者如果它是静态的,则调用它的静态方法)并测试它们。或者,如果您的类没有任何方法,那么您应该测试您的类/对象的使用者的方法。
猜你喜欢
  • 2014-02-18
  • 2012-01-08
  • 2019-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 2019-01-05
  • 2011-03-16
相关资源
最近更新 更多