我在手动构造一个时遇到了麻烦IServiceProvider,它将允许我的单元测试使用它来引入共享的测试配置GetService<IOptions<MyOptions>>
我创建了一些单元测试来说明我的问题,如果可以用于回答问题,也可以在此处找到该代码的存储库。
JSON
{
"Test": {
"ItemOne": "yes"
}
}
Run Code Online (Sandbox Code Playgroud)
期权类别
public class TestOptions
{
public string ItemOne { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
测试
这些测试都失败了,ConfigureWithBindMethod并且ConfigureWithBindMethod都SectionIsAvailable合格了。因此,据我所知,该部分正按预期从JSON文件中使用。
[TestClass]
public class UnitTest1
{
[TestMethod]
public void ConfigureWithoutBindMethod()
{
var collection = new ServiceCollection();
var config = new ConfigurationBuilder()
.AddJsonFile("test.json", optional: false)
.Build();
collection.Configure<TestOptions>(config.GetSection("Test"));
var services = collection.BuildServiceProvider();
var options = services.GetService<IOptions<TestOptions>>();
Assert.IsNotNull(options);
}
[TestMethod]
public void ConfigureWithBindMethod()
{
var collection = new …Run Code Online (Sandbox Code Playgroud)