: 같은
컨트롤러가 보인다. IOtions<T>
을 통해 주입 된 강력한 입력 설정을 사용해야합니다. 자세한 내용은이 문서를 참조하십시오 : Options pattern in ASP.NET Core.
옵션 패턴을 사용할 때 컨트롤러가 요구하는 설정에 대해 POCO가 있습니다. 이 설정은 다음 IOptions<T>
에 랩 컨트롤러에 주입 객체 :
public class ControllerSettings
{
public string Setting1 { get; set; }
public int Setting2 { get; set; }
// ...
}
public class Controller
{
private readonly ControllerSettings _settings;
public Controller(IOptions<ControllerSettings> options)
{
_settings = options.Value;
}
}
는 그 다음이 단위 테스트에서 원하는 설정을 통과 할 매우 간단합니다. 그냥 설정 인스턴스를 작성 Moq 또는 NSubstitute처럼 사용할 수 조롱 프레임 워크의와 IOptions<T>
에 포장 : 때때로이 프로젝트의 실제 구성을 사용하는 데 필요한 것
[TestMethod]
public void SomeTest()
{
var settings = new ControllerSettings
{
Setting1 = "Some Value",
Setting2 = 123,
};
var options = new Mock<IOptions<ControllerSettings>>();
options.Setup(x => x.Value).Returns(settings);
var controller = new Controller(options.Object);
// ...
}
을, 예를 들어 통합 테스트를 개발할 때. 이 경우 ConfigurationBuilder
인스턴스를 만들고 테스트 된 코드와 동일한 구성 소스로 채울 수 있습니다.
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
// Duplicate here any configuration sources you use.
configurationBuilder.AddJsonFile("AppSettings.json");
IConfiguration configuration = configurationBuilder.Build();