So führen Sie einen Unit-Test mit ILogger in ASP.NET Core durch
Posted: 27 Jan 2025, 04:47
Das ist mein Controller:
einfach verspotten, aber mit dem Iloogger weiß ich nicht, was ich tun soll, ich bin ich Geben Sie einfach NULL weiter und kommentieren Sie den Anruf zum Anmeldung im Controller beim Ausführen von Test. Gibt es eine Möglichkeit zu testen, aber den Logger trotzdem irgendwie zu behalten? < /P>
Code: Select all
public class BlogController : Controller
{
private IDAO _blogDAO;
private readonly ILogger _logger;
public BlogController(ILogger logger, IDAO blogDAO)
{
this._blogDAO = blogDAO;
this._logger = logger;
}
public IActionResult Index()
{
var blogs = this._blogDAO.GetMany();
this._logger.LogInformation("Index page say hello", new object[0]);
return View(blogs);
}
}
< /code>
Wie Sie sehen, habe ich 2 Abhängigkeiten, einen IDAO < /code> und einen Iloogger < /code> < /p>
und dies ist meine Testklasse. Ich verwende Xunit zum Testen und MOQ, um Schein und Stub zu erstellen. Ich kann Dao
Code: Select all
public class BlogControllerTest
{
[Fact]
public void Index_ReturnAViewResult_WithAListOfBlog()
{
var mockRepo = new Mock();
mockRepo.Setup(repo => repo.GetMany(null)).Returns(GetListBlog());
var controller = new BlogController(null,mockRepo.Object);
var result = controller.Index();
var viewResult = Assert.IsType(result);
var model = Assert.IsAssignableFrom(viewResult.ViewData.Model);
Assert.Equal(2, model.Count());
}
}