gpt4 book ai didi

c# - 匿名类型的单元测试 - JSON

转载 作者:太空狗 更新时间:2023-10-30 01:32:45 24 4
gpt4 key购买 nike

我必须编写一个单元测试来测试恰好将 JSON 作为匿名类型返回的 Controller 。

这是匿名的唯一原因是因为我需要向它添加一个根节点,所以 Controller 的返回看起来像这样:

return Json(new { User = person });

这会使用“User”向 JSON 添加一个根节点,后跟一个序列化为 JSON 的 Person 对象。

这很好用,我的问题出在单元测试上。

我见过的测试匿名类型的唯一解决方案是首先使用 AssemblyInfo.cs 中的 InternalsVisibleTo 使测试项目可见,然后使用 dynamic 获取结果。

    dynamic results = userController.GetPerson(1);
dynamic content = results.Content;

这在第二行失败,表示 object 没有 Content 属性。但是,在调试器下,它显示 Content 属性。

我该如何进行测试?

Error

Content Property

最佳答案

我解决了这个问题。

问题出在 [assembly: InternalsVisibleTo()] 属性上。

我不小心把它放在我的单元测试项目中,而不是放在从 Controller 返回匿名类型的 Web API 应用程序中。

将此添加到 Web API 项目中的 AssemblyInfo.cs 文件并使用单元测试项目名称和属性解决了错误,并且 dynamic 对象现在按预期填充。

Valid dynamic Content property

关于c# - 匿名类型的单元测试 - JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36245656/

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