में ILogger साथ इकाई परीक्षण करने के लिए यह मेरा नियंत्रक है:कैसे ASP.NET कोर
public class BlogController : Controller
{
private IDAO<Blog> _blogDAO;
private readonly ILogger<BlogController> _logger;
public BlogController(ILogger<BlogController> logger, IDAO<Blog> 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);
}
}
आप देख सकते हैं मैं 2 निर्भरता, एक IDAO
और एक ILogger
है और यह अपने परीक्षण वर्ग है , मैं xUnit का परीक्षण और मॉक बनाने के लिए मॉक और स्टब बनाने के लिए उपयोग करता हूं, मैं DAO
को मॉक कर सकता हूं, लेकिन ILogger
के साथ मुझे नहीं पता कि मुझे क्या करना है, इसलिए मैं सिर्फ शून्य को पास करता हूं और परीक्षण चलाने पर नियंत्रक में लॉग इन करने के लिए कॉल को टिप्पणी करता हूं। क्या परीक्षण करने का कोई तरीका है लेकिन फिर भी लॉगजर को किसी भी तरह रखना है?
public class BlogControllerTest
{
[Fact]
public void Index_ReturnAViewResult_WithAListOfBlog()
{
var mockRepo = new Mock<IDAO<Blog>>();
mockRepo.Setup(repo => repo.GetMany(null)).Returns(GetListBlog());
var controller = new BlogController(null,mockRepo.Object);
var result = controller.Index();
var viewResult = Assert.IsType<ViewResult>(result);
var model = Assert.IsAssignableFrom<IEnumerable<Blog>>(viewResult.ViewData.Model);
Assert.Equal(2, model.Count());
}
}
की तरह अपने unittests में यह प्रयोग करें:। वर कारखाने = serviceProvider.GetService() AddDebug(); –
spottedmahn