/// <summary> /// 注册单元测试用例 /// </summary> public void RegisterUnitTestCase() { IUnitTestCaseManager unitTestCaseManager = DependencyManager.Instance.Resolver <IUnitTestCaseManager>(); unitTestCaseManager.RegisterUnitTestCase(new UnitTestCaseContainer { UnitTestNamespace = "Eiap.Framework.Base.UnitTest.SXW.Test", ClassName = "IUnitTestAppInterface", MethodName = "Add", MethodParas = new List <object> { 3, 5 }, CaseAssertType = UnitTestCaseAssertType.AssertEquals, UnitTestClassTypeHandle = typeof(IUnitTestAppInterface).TypeHandle, MethodReturn = 7 }); }
public IUnitTestManager Run(string unitTestNamespace) { IUnitTestCaseManager unitTestCaseManager = DependencyManager.Instance.Resolver <IUnitTestCaseManager>(); IUnitTestResultManager unitTestResultManager = DependencyManager.Instance.Resolver <IUnitTestResultManager>(); List <UnitTestCaseContainer> unitTestCaseContainerList = unitTestCaseManager.GetUnitTestCaseByNamespace(unitTestNamespace); foreach (UnitTestCaseContainer unitTestCase in unitTestCaseContainerList) { object unitTestInstance = DependencyManager.Instance.Resolver(unitTestCase.UnitTestClassType); object unitTestInstanceMethodReturn = null; Exception tmpException = null; UnitTestResultContainer unitTestResult = new UnitTestResultContainer { ClassName = unitTestCase.ClassName, MethodName = unitTestCase.MethodName, UnitTestNamespace = unitTestCase.UnitTestNamespace, MethodParas = unitTestCase.MethodParas }; try { unitTestInstanceMethodReturn = unitTestInstance.GetType().GetMethod(unitTestCase.MethodName).Invoke(unitTestInstance, unitTestCase.MethodParas.ToArray()); } catch (Exception ex) { tmpException = ex; } switch (unitTestCase.CaseAssertType) { case UnitTestCaseAssertType.AssertEquals: if (unitTestInstanceMethodReturn.Equals(unitTestCase.MethodReturn)) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertSame: if (unitTestInstanceMethodReturn == unitTestCase.MethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertFalse: if (unitTestInstanceMethodReturn is bool && !(bool)unitTestInstanceMethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertTrue: if (unitTestInstanceMethodReturn is bool && (bool)unitTestInstanceMethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNull: if (unitTestInstanceMethodReturn == null) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNotNull: if (unitTestInstanceMethodReturn != null) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; case UnitTestCaseAssertType.AssertNotSame: if (unitTestInstanceMethodReturn != unitTestCase.MethodReturn) { unitTestResult.Result = true; } else { SetUnitTestResultFalse(unitTestResult, tmpException); } break; } unitTestResultManager.AddUnitTestResult(unitTestResult); } return(this); }