/// <summary> /// 随机字段 /// </summary> public override void RandomField() { if (HasRandom) { return; } HasRandom = true; System.Random random = new System.Random(); ParentField = random.Next(int.MinValue, int.MaxValue); BoolVal = random.Next(0, 2) == 0; ByteVal = (byte)random.Next(byte.MinValue, byte.MaxValue); CharVal = (char)random.Next('\u4E00', '\u9FA5'); DecimalVal = (decimal)random.Next(int.MinValue, int.MaxValue); DoubleVal = (double)random.Next(int.MinValue, int.MaxValue); EnumVal = (EnumTest)random.Next((int)EnumTest.A, (int)EnumTest.E); FloatVal = (float)random.Next(int.MinValue, int.MaxValue); IntVal = random.Next(int.MinValue, int.MaxValue); LongVal = (long)random.Next(int.MinValue, int.MaxValue); SByteVal = (sbyte)random.Next(sbyte.MinValue, sbyte.MaxValue); ShortVal = (short)random.Next(short.MinValue, short.MaxValue); StringVal = random.Next(int.MinValue, int.MaxValue).ToString(); UIntVal = (uint)random.Next(0, int.MaxValue); ULongVal = (ulong)random.Next(0, int.MaxValue); UShortVal = (ushort)random.Next(ushort.MinValue, ushort.MaxValue); MaterialVal = AssetDatabase.LoadMainAssetAtPath(random.Next(0, 2) == 0? Const_PathMaterialB : Const_PathMaterialC) as Material; NonSerializedInt = random.Next(int.MinValue, IntValDefault); SerializableVal.RandomField(); ArrayVal = new Test_ToXmlOther[random.Next(2, 6)]; for (int i = 0; i < ArrayVal.Count(); i++) { ArrayVal[i] = new Test_ToXmlOther(); ArrayVal[i].RandomField(); } ListVal = new List <Test_ToXmlOther>(); for (int i = 0; i < random.Next(2, 6); i++) { ListVal.Add(new Test_ToXmlOther()); ListVal[i].RandomField(); } DictionaryVal = new Dictionary <int, Test_ToXmlOther>(); for (int i = 0; i < random.Next(2, 6); i++) { DictionaryVal.Add(i, new Test_ToXmlOther()); DictionaryVal[i].RandomField(); } }
/// <summary> /// 数据相同验证 /// </summary> /// <param name="tester">测试对象</param> /// <param name="listHasTest">已测试对象</param> /// <returns>测试结果</returns> public bool ValueEqual(Test_ToXmlOther tester, List <Test_ToXmlBase> listHasTest) { if (listHasTest.Contains(this)) { return(true); } listHasTest.Add(this); if (IntVal != tester.IntVal) { throw new Exception($"{nameof(IntVal)} is not equal!"); } if (ParentField != tester.ParentField) { throw new Exception($"{nameof(ParentField)} is not equal!"); } if (OtherVal != null && !OtherVal.ValueEqual(tester.OtherVal, listHasTest)) { throw new Exception($"{nameof(OtherVal)} is not equal!"); } return(true); }
/// <summary> /// 构造函数 /// </summary> public Test_ToXmlOther() { ThisVal = this; }