using System; using System.Collections.Generic; using Xunit; using CncModels.Dto; namespace CncModels.Tests { /// /// PagedResult 单元测试 /// public class PagedResultTests { [Theory] [InlineData(20, 20, 1)] [InlineData(21, 20, 2)] [InlineData(0, 10, 0)] public void TotalPages_Calculation_Works(int total, int pageSize, int expectedPages) { // Arrange var r = new PagedResult { Total = total, PageSize = pageSize, Page = 1 }; // Act & Assert Assert.Equal(expectedPages, r.TotalPages); } [Fact] /// /// Items 属性默认应为空列表而非 null /// public void Items_Should_Be_Empty_List_By_Default() { // Arrange var r = new PagedResult(); // Assert Assert.NotNull(r.Items); Assert.Empty(r.Items); } [Fact] /// /// 属性赋值正确 /// public void Properties_Assigned_Correctly() { // Arrange var items = new List { "a", "b" }; var r = new PagedResult { Items = items, Total = 2, Page = 1, PageSize = 2 }; // Assert Assert.Equal(items, r.Items); Assert.Equal(2, r.Total); Assert.Equal(1, r.Page); Assert.Equal(2, r.PageSize); Assert.Equal(1, r.TotalPages); // 2/2 = 1 } } }