Esempio n. 1
0
        /// <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
            });
        }
Esempio n. 2
0
        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);
        }