Blogg

12 februari, 2013

Test hjälpklass för att validera att korrekt test attribut är satta

När man utvecklar system med metodik som testdriven utveckling (TDD) kan det ibland vara enkelt att glömma bort att sätta rätt attribut på sina testklasser.
Nedanstående hjälpklass kontrollerar att samtliga ens klasser i ett testprojekt har korrekt attribut satta, för i det här fallet NUnit som testverktyg. NUnit går enkelt att byta ut mot valfritt testverktyg tillexempel MS Test.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using NUnit.Framework;


    [TestFixture]
    public class MissingTestFixtureAttributeTests
    {

        [Test]
        public void AllTestFixturesMustHaveTestFixtureAttribute()
        {
            IEnumerable badFixtures =
        from t in Assembly.GetExecutingAssembly().GetTypes()
        where HasTests(t)
        where IsMissingTestFixtureAttribute(t)
        select t;

            ErrorIfAny(badFixtures);
        }

        static bool HasTests(Type type)
        {
            var testMethods =
            from m in type.GetMethods()
            from a in m.GetCustomAttributes(typeof(TestAttribute), true)
            select m;
            return testMethods.Any();
        }

        static bool IsMissingTestFixtureAttribute(Type type)
        {
            var attributes =
            from a in type.GetCustomAttributes(typeof(TestFixtureAttribute), true)
            select a;

            return !attributes.Any();
        }

        private static void ErrorIfAny(IEnumerable fixtures)
        {
            if (!fixtures.Any())
                return;

            var sb = new StringBuilder("The following types are missing [TestFixture] attributes:");
            sb.AppendLine();
            foreach (Type type in fixtures)
            {
                sb.AppendLine();
                sb.Append(type);
            }

            throw new Exception(sb.ToString());
        }
    } 
Kodexempel , ,
About Robert Jansz, Webking
Med sin höga ambition får Robert det komplicerade att verka enkelt och han tillför det ovärderliga kunnande som skapar trygghet för kunden
Robert är alltid tydligt engagerad och visar ett starkt driv för att få saker gjorda. Han är ett föredöme i konsultrollen och hans kombination mellan affärsmässighet, tekniskt kunnande och social förmåga sticker ut. Robert är en entreprenör som får det komplicerade att verka enkelt och skapar en trygghet åt sina kunder Han inspirerar med sin strävan att alltid leverera det bästa - han ser nya perspektiv och alternativa lösningar och tillför ett ovärderligt kunnande. Robert har en förmåga att på ett engagerat och professionellt sätt ta sig an sina kunder och hans arbete präglas av mycket hög kvalitet och ett optimalt resultat. Han är en utmärkt lagspelare som verkligen inspirerar och utvecklar andra. Robert vill göra skillnad och han har en förmåga att kunna driva på ett utvecklingsarbete. Han är lyhörd mot kunden, har en mycket hög ambitionsnivå och hans engagemang är kombinerat med en stor ödmjukhet. Reputation Resumé : Sammanställningen baseras på svar från 9 kollegor och kunder som lämnat svar anonymt mars 2013. Detta har analyserats av Per Frykman AB. Sammanställningen baseras på svar från 9 kollegor och kunder som lämnat svar anonymt 2013.

Leave a Reply

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.

SWITCH THE LANGUAGE
Nyhetsbrev

Registrera dig till vårt nyhetsbrev, fullt med inspiration, case, och tips som kan öka din lönsamhet!