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。

有什么解决办法吗?

谢谢!

JsonConvert.SerializeObject((从来都不是常量,它是一个运行时例程。

常量表示在编译时已知。如果myObject本身从未更改,并且它又小又简单,那么您可以将json作为静态字符串传递到属性中,即

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

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

最新更新