gpt4 book ai didi

c# - 对 ASP.NET Core 中的内部类进行单元测试

转载 作者:太空狗 更新时间:2023-10-29 19:46:30 30 4
gpt4 key购买 nike

我想在 ASP.NET Core 项目中对具有 internal 保护级别的类进行单元测试。我已经将一个 AssemblyInfo.cs 文件添加到被测项目的属性中:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

[assembly: InternalsVisibleTo("xxx.xxx.xxxTests")]

但是当我在测试中调用它时:

mockApplicationBuilder.Verify(y => y.UseMiddleware<HttpExceptionMiddleware>());

我还是明白了

HttpExceptionMiddleware is inaccessible due to its protection level

为什么我的 AssemblyInfo 属性不起作用?

我的设置是我有一个包含 2 个文件夹(src 和测试)的解决方案,这些文件夹分别在文件夹的根目录中有 src 项目和测试项目。 AssemblyInfo.cs 文件在我的 src 项目的属性中。我是否需要在 assemblyInfo.cs 属性中指定测试项目的完整路径?

我的测试项目中也有一个 AssemblyInfo.cs,尽管我认为这无关紧要。

最佳答案

没有深入研究您的解决方案,我只能提供建议

  • 验证您的 ASP 项目在您的测试项目中被引用,这是应该的,否则您会遇到其他问题,并且很可能作为项目引用
  • 验证您的测试项目程序集名称以及 InternalsVisibleTo 是否包含完全限定的程序集名称
  • 验证 HttpExceptionMiddleware 实际上被标记为内部
  • 清洁并验证清洁,然后重建您的解决方案。

关于c# - 对 ASP.NET Core 中的内部类进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42493414/

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