Ejemplo n.º 1
0
 private void EvaluateChildDescribeBlocks(DescribeBlock parentDescribeBlock)
 {
     if (!_runtimeContext.TestsExecuting)
     {
         foreach (var childDescribeBlock in parentDescribeBlock.ChildDescribeBlocks)
         {
             _currentDescribeBlock = childDescribeBlock;
             childDescribeBlock.Func();
             EvaluateChildDescribeBlocks(childDescribeBlock);
         }
     }
 }
Ejemplo n.º 2
0
        public void HandleDescribeMethodCall(string description, Action func)
        {
            if (_runtimeContext.TestsExecuting)
            {
                return;
            }
            var newDescribeBlock =
                new DescribeBlock(description, func)
            {
                ParentDescribeBlock = _currentDescribeBlock
            };

            _currentDescribeBlock.ChildDescribeBlocks.Add(newDescribeBlock);
        }
Ejemplo n.º 3
0
        public List <ExecutableSpec> GetExecutableSpecs(DescribeBlock describeBlock)
        {
            var executableTests = new List <ExecutableSpec>();

            foreach (var itBlock in describeBlock.ChildItBlocks)
            {
                executableTests.Add(new ExecutableSpec(itBlock));
            }

            foreach (var childDescribeBlock in describeBlock.ChildDescribeBlocks)
            {
                executableTests.AddRange(GetExecutableSpecs(childDescribeBlock));
            }

            return(executableTests);
        }
Ejemplo n.º 4
0
        public DescribeBlock Find(string methodName)
        {
            var methodDescribeBlock = new DescribeBlock(methodName.Replace("_", " "));

            foreach (var method in _specToSearch.GetType().GetMethods())
            {
                if (method.Name == methodName)
                {
                    _currentDescribeBlock = methodDescribeBlock;
                    method.Invoke(_specToSearch, null);
                    EvaluateChildDescribeBlocks(methodDescribeBlock);
                }
            }

            return(methodDescribeBlock);
        }