.NET Core 单元测试 - 模拟 IOptions
csharp// 定义一个配置选项类public class MyOptions{ public string Option1 { get; set; } public int Option2 { get; set; }}// 定义被测试组件public class MyComponent{ private readonly MyOptions _options; public MyComponent(IOptions<MyOptions> options) { _options = options.Value; } public string GetOption1() { return _options.Option1; } public int GetOption2() { return _options.Option2; }}// 单元测试代码[TestFixture]public class MyComponentTests{ [Test] public void GetOption1_ShouldReturnDefaultValue() { // 创建一个虚拟的配置选项对象 var options = new Mock<IOptions<MyOptions>>(); options.Setup(x => x.Value).Returns(new MyOptions { Option1 = "Default", Option2 = 100 }); // 创建被测试组件的实例,并注入虚拟的配置选项对象 var component = new MyComponent(options.Object); // 断言结果是否符合预期 Assert.AreEqual("Default", component.GetOption1()); } [Test] public void GetOption2_ShouldReturnDefaultValue() { // 创建一个虚拟的配置选项对象 var options = new Mock<IOptions<MyOptions>>(); options.Setup(x => x.Value).Returns(new MyOptions { Option1 = "Default", Option2 = 100 }); // 创建被测试组件的实例,并注入虚拟的配置选项对象 var component = new MyComponent(options.Object); // 断言结果是否符合预期 Assert.AreEqual(100, component.GetOption2()); }}通过模拟 IOptionsCopyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号