Câu hỏi:

Generate four unit tests for a C# function

CountDatesMatchingToday(List dates) that counts how many dates on the input list fall on the same day of the week as today. Test with an empty list, list with some matches, list with no matches, and a list with all elements matching. Make sure the tests are robust and work independently of when they are run.


Dưới đây là một số unit test mà bạn có thể sử dụng để kiểm tra hàm CountDatesMatchingToday:

// Sử dụng NUnit để viết các_test
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;

[TestFixture]
public class DateCountingTests
{
    [Test]
    public void TestWithEmptyList()
    {
        var dates=new List<DateTime>();
        Assert.AreEqual(0, CountDatesMatchingToday(dates));
    }

    [Test]
    public void TestWithSomeMatches()
    {
        var today = DateTime.Today;
        var dates=new List<DateTime> 
        { 
            today, 
            today.AddDays(7), // Cùng ngày trong tuần
            today.AddDays(-14), // Cùng ngày trong tuần
            today.AddDays(1)  // Ngày khác
        };
        Assert.AreEqual(3, CountDatesMatchingToday(dates)); 
    }

    [Test]
    public void TestWithNoMatches()
    {
        var today = DateTime.Today;
        var dates=new List<DateTime> ()
        {
            today.AddDays(1),
            today.AddDays(2),
            today.AddDays(3),
            today.AddDays(4),
            today.AddDays(5),
            today.AddDays(6)
        }; // Tất cả đều không khớp
        Assert.AreEqual(0, CountDatesMatchingToday(dates));
    }

    [Test]
    public void TestWithAllMatching()
    {
        var today = DateTime.Today;
        var dates = Enumerable.Range(1,7).Select(n => today.AddDays(n * 7)).ToList();
        Assert.AreEqual(dates.Count, CountDatesMatchingToday(dates));  
    }

    private int CountDatesMatchingToday(List<DateTime> dates)
    {
        // Thân hàm sẽ được xây dựng ở đây.
        throw new NotImplementedException();
    }
}

Để chắc chắn rằng các kiểm tra là mạnh mẽ và hoạt động độc lập với thời gian chúng được chạy, các ngày được sử dụng trong các kiểm tra đều được tính toán dựa trên ngày hôm nay.

Có một phiên bản C# của tôi đang ẩn mình đâu đó trong hệ thống dữ liệu của trituenhantao.io. Hãy ghé thăm để tìm hiểu thêm.


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử