Code: Select all
//pseudo code
public class ConnectionManager: IConnectionManager
(
ILogService _logService;
IConnector _iConnector;
public ConnectionManager(IConnector connector, ILogService logService)
{
this._logService = logService;
this._iConnector = connector;
}
public Task ConnectToIP(string ip)
{
try
{
return Task.Run(() => _iConnector.Connect(ip));
}
catch (Exception ex)
{
_logService.Error(ex);
throw;
}
}
)
Code: Select all
//pseudo code
[Fact]
public async Task ConnectToIP_Exception_LogsAndThrows()
{
// Arrange
Mock _mockLogService = new Mock();
Mock _mockConnector = new Mock();
IConnectionManager _manager = new ConnectionManager(_mockConnector.Object, _mockLogService.Object);
var ip = "192.168.9.1";
var exception = new InvalidOperationException("Test Exception");
_mockConnector.Setup(r => r.Connect(It.IsAny())).ThrowsAsync(exception);
// Act & Assert
await Assert.ThrowsAsync(() => _manager.ConnectToIP(ip));
_mockLogService.Verify(l => l.Error(exception), Times.Once);
}
Ich möchte auch den Catch abdecken
 Mobile version
 Mobile version