unit-testing - 如何创建具有平等管理顺序的 LinkedHashMap
问题描述
在我的单元测试中,我需要测试元素的顺序:
test("Check map order", () {
LinkedHashMap<String, String> actualMap = LinkedHashMap();
actualMap["0"] = "firstValue";
actualMap["1"] = "secondValue";
LinkedHashMap<String, String> expectedMap = LinkedHashMap();
expectedMap["1"] = "secondValue";
expectedMap["0"] = "firstValue";
print("actual: $actualMap");
print("expected: $expectedMap");
expect(actualMap, isNot(expectedMap));
});
如果遵守顺序,则此测试失败:
actual: {0: firstValue, 1: secondValue}
expected: {1: secondValue, 0: firstValue}
package:test_api expect
test/services/game/negotiation/NegotiationGameService_test.dart 33:7 main.<fn>.<fn>
Expected: not {'1': 'secondValue', '0': 'firstValue'}
Actual: {'0': 'firstValue', '1': 'secondValue'}
解决方案
第一个可行但有点无聊的想法:
test("Check map order", () {
LinkedHashMap<String, String> actualMap = LinkedHashMap();
actualMap["0"] = "firstValue";
actualMap["1"] = "secondValue";
LinkedHashMap<String, String> expectedMapSameOrder = LinkedHashMap();
expectedMap["0"] = "firstValue";
expectedMap["1"] = "secondValue";
LinkedHashMap<String, String> expectedMapDifferentOrder = LinkedHashMap();
expectedMap["1"] = "secondValue";
expectedMap["0"] = "firstValue";
print("actual: $actualMap");
print("expected: $expectedMapSameOrder");
print("expected: $expectedMapDifferentOrder");
expect(actualMap, expectedMapSameOrder);
expect(actualMap.keys, isNot(orderedEquals(expectedMapSameOrder.keys)));
expect(actualMap, expectedMapDifferentOrder);
expect(actualMap.keys, orderedEquals(expectedMapDifferentOrder.keys));
});
推荐阅读
- python - 如何以较小的平均值按顺序获取价值
- swiftui - 使用 SwiftUI 等间距的圆形分割
- android - Android上的Gstreamer gst_app_src_push_buffer未定义参考错误
- mysql - 将 Postgresql 转换为 HiveSql
- pdfbox - 如何在 PDFBOX 中获得正确的字体大小
- python - builtins.TypeError: _findCaller() 需要 1 到 2 个位置参数,但 django 中给出了 3 个
- spring-boot - 覆盖部署在 Kubernetes 中的 Spring Boot 应用程序使用的默认服务帐户
- android - 具有多个微调器问题的 Recyclerview 问题
- domain-driven-design - 如何在 ddd 中构建聚合,传递 VO 或原始数据?
- php - 基于开关切换在 WooCommerce Checkout 中添加自定义折扣