এটি আমার নিয়ামক:
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 টি নির্ভরতা রয়েছে, a IDAO
এবং aILogger
এবং এটি আমার পরীক্ষার ক্লাস, আমি পরীক্ষার জন্য xUnit এবং মক এবং স্টাব তৈরি করতে Moq ব্যবহার করি, আমি 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());
}
}
ILogger
। তাঁর ব্লগপোস্টে তাঁর কয়েকটি ভাল পরামর্শ রয়েছে এবং আমি আমার সমাধান নিয়ে এসেছি যা মনে হয় নীচের উত্তরের বেশিরভাগ সমস্যার সমাধান করবে ।