首页 > 解决方案 > C# - 将对象序列化为常量变量或直接在 NUnit 的测试用例中使用

问题描述

当我尝试将对象序列化为常量变量或在测试用例中使用序列化对象时遇到问题。

我尝试做这样的事情:

    [TestCase(JsonConvert.SerializeObject(myObject), TestName = "Test Case Name")]
    public void Test(string someString)
    {
         do something...
    }

但是,我得到一个错误,我只需要使用常量变量。我需要这样的东西:

 public const string someString2 = JsonConvert.SerializeObject(myObject); 

然后,我可以在测试用例中使用这个 someString2 。

任何想法如何解决它?

谢谢!

标签: c#nunit

解决方案


JsonConvert.SerializeObject() 永远不会是常量,它是一个运行时例程。

常量意味着在编译时已知。如果 myObject 本身永远不会改变,而且它又小又简单,您可以将 json 作为静态字符串传递给属性,即

[TestCase(@"{""foo"": ""bar""}, TestName = "Test Case Name")]

或者您可以将对象作为方法中的参数传递,并调用 JsonConvert.SerializeObject() 作为第一条语句并以这种方式获取您的 json。


推荐阅读