c# - 如何在 xunit 测试项目中读取 appsettings.json?
问题描述
我正在尝试为用 MVC 控制器编写的一种方法编写测试用例,并且在该方法中我正在读取 AppSettings.json 文件。如下
public class MemberController : ControllerBase
{
IMemberRepository _memberRepository;
public PayPalKeys payPal;
public ActiveDirectory activeDirectory;
private static GraphServiceClient _graphServiceClient;
public MemberController(IMemberRepository member, IOptions<PayPalKeys> payPal, IOptions<ActiveDirectory> activeDirectory)
{
_memberRepository = member;
this.payPal = payPal.Value;
this.activeDirectory = activeDirectory.Value;
}
private IConfigurationRoot LoadAppSettings()
{
try {
var config = new ConfigurationBuilder()
.SetBasePath(System.IO.Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", false, true)
.Build();
-
-
-
}
catch(Exception ae){}
}
}
以下是我的测试代码
[Fact]
public void Payment()
{
var memberRepositoryManagerMock = new Mock<IMemberRepository>();
var members = new Members() {};
var controller = new MemberController(memberRepositoryManagerMock.Object, GetPayPalConfigurationMock().Object, GetActiveDirectoryConfigurationMock().Object);
var result = controller.MakePayment(members);
}
并且来自控制器的该方法给出了异常,因为找不到配置文件'appsettings.json'并且不是可选的。物理路径为“F:\API.Test\bin\Debug\netcoreapp2.2\appsettings.json”。
在这里,我不明白如何在测试用例代码中模拟“appsettings.json”部分。
解决方案
推荐阅读
- docker-compose - docker-compose.yml 中的多个基础镜像
- apache-kafka - 如何查看 Ksql 流中的失败消息?
- swift - AttributedString 中 NSTextAttachment 上的 AccessibilityIdentifier
- sas - 大家好。我需要填写下一个默认日期,如附件所示。所需的输出是最后一列。使用的语言是 SAS。谢谢
- java - Liquibase SQL 回滚语句不起作用
- c# - 如何下载 Block Blob (Base64) 文件并使用 Azure Blob 存储将其转换为 PNG?
- python - 检查输入内容
- vue.js - 确保元素保持在视图中至少一秒钟
- java - 当缓冲区到达其边界时,Java Nio ByteBuffer 截断 unicode 字符
- javascript - React 在渲染页面之前不会等待 Redux 状态更改完成