我有一个依赖于记录器的类。如何注册以确保记录仪通过?
function insertHyphen(str) {
var strArr = str.split('');
var numArr = strArr.map(Number);
for(var i = 0; i < numArr.length; i++) {
if(numArr[i-1]%2===0 && numArr[i]%2===0) {
numArr.splice(i, 0, '-');
}
}
return numArr.join('');
}
insertHyphen('112233445566'); //'112-2334-4556-6'
答案 0 :(得分:0)
这没什么大不了的,如果您没有其他的小东西。请考虑以下示例:
[Test]
public void PassLoggerToHandlersCtor()
{
// Arrange
var builder = new ContainerBuilder();
builder.RegisterType<Logger>().As<ILogger>();
builder.RegisterType<Files>().As<IHttpHandler>();
builder.RegisterType<FileService>().AsSelf();
var container = builder.Build();
// Act
var handler = container.Resolve<IHttpHandler>();
// Assert
Assert.IsInstanceOf<Files>(handler);
var files = (Files) handler;
Assert.IsInstanceOf<Logger>(files.Logger);
Assert.IsInstanceOf<Logger>(files.fileService.Logger);
}
public class Files : IHttpHandler
{
/// <summary>
/// Just for tests
/// </summary>
public ILogger Logger { get; }
/// <summary>
/// Just for tests
/// </summary>
public FileService fileService { get; }
/// <inheritdoc />
public bool IsReusable { get; }
public Files(ILogger logger)
{
Logger = logger;
fileService = new FileService(logger);
}
/// <inheritdoc />
public void ProcessRequest(HttpContext context)
{
}
}
public interface ILogger { }
public class Logger : ILogger { }
public class FileService
{
/// <summary>
/// Just for tests
/// </summary>
public ILogger Logger { get; }
public FileService(Program.ILogger logger)
{
Logger = logger;
}
}
希望有帮助。