Skip to content

Commit 119888d

Browse files
Copilotnnhy
andcommitted
fix: 根据代码审查反馈改进6处测试质量
Co-authored-by: nnhy <506367+nnhy@users.noreply.github.com>
1 parent c6fd39a commit 119888d

4 files changed

Lines changed: 38 additions & 20 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ public void GetProperties_EmptyProperties()
210210
var props = msg.GetProperties();
211211

212212
Assert.NotNull(props);
213+
Assert.Equal(String.Empty, props);
213214
}
214215
#endregion
215216

XUnitTestRocketMQ/MessageQueueTests.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -84,15 +84,16 @@ public void GetHashCode_SameProperties_SameHash()
8484
}
8585

8686
[Fact]
87-
[DisplayName("GetHashCode_不同属性通常不同哈希")]
88-
public void GetHashCode_DifferentProperties_DifferentHash()
87+
[DisplayName("GetHashCode_同一实例多次调用相同哈希")]
88+
public void GetHashCode_SameInstance_MultipleCalls_SameHash()
8989
{
90-
var q1 = new MessageQueue { Topic = "test1", BrokerName = "broker-a", QueueId = 0 };
91-
var q2 = new MessageQueue { Topic = "test2", BrokerName = "broker-a", QueueId = 0 };
90+
var q = new MessageQueue { Topic = "test1", BrokerName = "broker-a", QueueId = 0 };
91+
92+
// 同一实例在一次执行过程中多次调用 GetHashCode,结果应保持一致
93+
var h1 = q.GetHashCode();
94+
var h2 = q.GetHashCode();
9295

93-
// 不同对象的哈希值不保证不同,但通常不同
94-
// 这里只验证相同属性哈希一致
95-
Assert.Equal(q1.GetHashCode(), q1.GetHashCode());
96+
Assert.Equal(h1, h2);
9697
}
9798

9899
[Fact]
@@ -105,11 +106,11 @@ public void GetHashCode_WorksAsDictionaryKey()
105106
var dict = new Dictionary<MessageQueue, String>();
106107
dict[q1] = "value";
107108

108-
// q2 与 q1 相等,应能查到
109-
// 注意:Dictionary 使用 GetHashCode + Equals
110-
// MessageQueue.Equals 返回 true 但默认 Dictionary 用引用比较
111-
// 除非重写了 Equals 和 GetHashCode
112-
Assert.True(dict.ContainsKey(q1));
109+
// q2 与 q1 属性相同且相等,应能作为键查到
110+
// 注意:Dictionary 使用 GetHashCode + Equals 处理键的相等性
111+
// 前提是 MessageQueue 正确重写了 Equals 和 GetHashCode
112+
Assert.True(dict.ContainsKey(q2));
113+
Assert.Equal("value", dict[q2]);
113114
}
114115
#endregion
115116

XUnitTestRocketMQ/RequestHeaderTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,8 +164,10 @@ public void EndTransactionRequestHeader_BooleanSerialization()
164164

165165
var dic = header.GetProperties();
166166

167-
// 值是原始 Boolean 对象(非字符串)
167+
// 值是原始 Boolean 对象(非字符串),且为 true
168168
Assert.True(dic.ContainsKey("fromTransactionCheck"));
169+
var fromTransactionCheck = Assert.IsType<Boolean>(dic["fromTransactionCheck"]);
170+
Assert.True(fromTransactionCheck);
169171
}
170172
#endregion
171173
}

XUnitTestRocketMQ/WeightRoundRobinTests.cs

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,30 @@ public void Set_ValidWeights_SetsReadyTrue()
3535
[DisplayName("Set_相同权重不重复设置")]
3636
public void Set_SameWeights_NoReset()
3737
{
38-
var lb = new WeightRoundRobin();
39-
lb.Set([1, 2, 3]);
38+
var lb1 = new WeightRoundRobin();
39+
var lb2 = new WeightRoundRobin();
4040

41-
// 先选一次改变状态
42-
lb.Get();
41+
// 初次设置相同权重
42+
lb1.Set([1, 2, 3]);
43+
lb2.Set([1, 2, 3]);
4344

44-
// 再次设置相同权重,不应重置状态
45-
lb.Set([1, 2, 3]);
45+
// 先各选一次改变状态
46+
lb1.Get();
47+
lb2.Get();
4648

47-
Assert.True(lb.Ready);
49+
// 对 lb1 再次设置相同权重,不应重置状态
50+
lb1.Set([1, 2, 3]);
51+
52+
// Ready 仍应为 true
53+
Assert.True(lb1.Ready);
54+
55+
// 后续多次 Get 的返回序列应与未再次 Set 的 lb2 完全一致
56+
for (var i = 0; i < 10; i++)
57+
{
58+
var expected = lb2.Get();
59+
var actual = lb1.Get();
60+
Assert.Equal(expected, actual);
61+
}
4862
}
4963

5064
[Fact]

0 commit comments

Comments
 (0)