我试图模仿一个顶级(不是任何部分的一部分)配置值(。NET 核心的 IConfiguration)。例如,这两个都不起作用(使用 NSubute,但是对于 Moq 或者我相信的任何模拟软件包都是一样的) :
var config = Substitute.For<IConfiguration>();
config.GetValue<string>(Arg.Any<string>()).Returns("TopLevelValue");
config.GetValue<string>("TopLevelKey").Should().Be("TopLevelValue"); // nope
// non generic overload
config.GetValue(typeof(string), Arg.Any<string>()).Returns("TopLevelValue");
config.GetValue(typeof(string), "TopLevelKey").Should().Be("TopLevelValue"); // nope
在我的例子中,我还需要从这个配置实例调用 GetSection
。