c# - 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。
推荐阅读
- api - 我尝试使用 POST 将文件下载到我的 api 时出现 404 错误是什么?
- objective-c - 是否可以在应用程序处于后台或被杀死时解析推送通知的内容并插入到 SQLIte 中?
- c - 如何使用 open mpi 共享字符串数组
- java - Java多线程环境下访问数据库
- java - 在 base64 中提取带有内联附件的电子邮件正文
- flutter - Flutter BottomNavigationBarItem 只接受 Icon 而没有其他小部件?
- angular - 如何使用动态按钮验证我的反应式表单?
- javascript - 快速路线不适用于一个路线名称而与另一个路线名称一起使用的奇怪问题背后的原因是什么?
- numpy - 通过for循环访问numpy数组中的列
- node.js - 在使用 Nodemailer 发送邮件之前,必须调用两次云函数