using System.Collections.Generic; using Xunit; using CncModels.Dto; namespace CncModels.Tests { /// /// ApiResponse 单元测试 /// public class ApiResponseTests { [Fact] /// /// 成功响应:Code=0, Message=success, Data=传入值 /// public void Success_Returns_Code_0_Message_Success_With_Data() { // Arrange var data = "ok"; // Act var resp = ApiResponse.Success(data); // Assert Assert.Equal(0, resp.Code); Assert.Equal("success", resp.Message); Assert.Equal(data, resp.Data); } [Fact] /// /// 成功响应:自定义信息 /// public void Success_With_Custom_Message() { var resp = ApiResponse.Success("payload", "custom"); Assert.Equal(0, resp.Code); Assert.Equal("custom", resp.Message); Assert.Equal("payload", resp.Data); } [Fact] /// /// 失败响应:非零错误码且数据为 null /// public void Fail_Returns_NonZero_Code_And_Null_Data() { var resp = ApiResponse.Fail(400, "bad request"); Assert.Equal(400, resp.Code); Assert.Equal("bad request", resp.Message); Assert.Null(resp.Data); } [Fact] /// /// 成功响应:数据为 null 的情况 /// public void Success_With_Null_Data() { var resp = ApiResponse.Success(null); Assert.Equal(0, resp.Code); Assert.Equal("success", resp.Message); Assert.Null(resp.Data); } [Fact] /// /// 成功响应:复杂对象数据 /// public void Success_With_Complex_Data() { var data = new List { 1, 2, 3 }; var resp = ApiResponse>.Success(data); Assert.Equal(0, resp.Code); Assert.Equal("success", resp.Message); Assert.Equal(data, resp.Data); } } }