Null reference exception in xunit test cases: IConfiguration settings
本问题已经有最佳答案,请猛点这里访问。
我已经为 API 控制器方法编写了一些 xUnit 测试。我正在使用 Azure 门户应用设置中的配置设置。
这是我用于初始化设置的代码。
1
2 3 4 5 |
private readonly IConfiguration _configuration;
public Controller(IConfiguration configuration) { _configuration = configuration; } |
在测试用例类中,
1
2 3 4 5 6 7 8 |
IConfiguration _configuration;
[Fact] public async void Method1() { Controller controller = new Controller(_configuration); } |
运行测试后出现错误
System.NullReferenceException : Object reference not set to an instance of an object.
对此有什么可能的解决方案?
- 您将 null 传递给构造函数,除非您在未发布的代码中初始化 _configuration
你需要定义_configuration。目前您声明了引用,但不要为其分配对象。它是空的。
你需要一些东西,比如:
IConfiguration _configuration = new Configuration();
当然,上面假设 Configuration 是一个实现 IConfiguration 接口的类。
- 是否应该创建一个实现 Iconfiguration 的类?
- @DVV,绝对是的。 IConfiguration 只是一个接口。它描述了一个合同,但它本身什么也不做。
来源:https://www.codenong.com/55293858/