PerSalmi.NET

Swedish .Net software developer...
# Thursday den 13 June 2013

För ett par veckor sedan körde vi ett kurstillfälle med vår .NET-kurs på Combitech där vi bland annat inkluderar testdriven utveckling med Visual Studio och C#. Eftersom den Unit Test Wizard som fanns i tidigare versioner av Visual Studio har försvunnit från 2012 versionen där enhetstestdelarna har gjorts om rejält så innebär det en del merarbete att skapa testfall för hand. Det finns visserligen sätt att plocka fram den tidigare wizarden för att generera skal till testfall och projekt om man vill, den är bortkopplad från menysystemet men kan aktiveras igen.

Det har funnits indikationer på att en ny generator för testfall är på gång och att orsaken till att den gamla togs bort var att den inte kunde fås att fungera med alternativa testramverk som nu kan användas enkelt med hjälp av plugins till den nya test runnern. Det är då intressant att en första version av en ny Unit Test Generator extension nu finns tillgänglig i Visual Studio Gallery. I första läget stödjer den bara att generera testprojekt och testfall för metoder i existerande klasser och då bara för MS-Test, men målen är klara för att man ska kunna generera kod för andra testramverk när RTM versionen kommer.

Extensionen hittar man direkt i Tools –> Extensions and Updates… om man söker på “unit test generator” eller laddar ner från länken Unit Test Generator extension.

Det man får efter installationen är en context-meny (högerklick) i kodeditorn när man är i en metod med alternativet Generate Unit Test:

image

Resultatet är att testprojekt med korrekta referenser tillsammans med testfall för metoden skapas i din solution:

image

Testkoden som genereras i testklassen är enklast möjliga, inte fylld med regioner och bortkommenterade avancerade delar som den tidigare wizarden gav. Om man genererar testfall för fler av metoderna efter hand läggs dessa i samma testklass.

   1:  using System;
   2:  using System.Collections.Generic;
   3:  using System.Linq;
   4:  using System.Text;
   5:  using System.Threading.Tasks;
   6:  using Microsoft.VisualStudio.TestTools.UnitTesting;
   7:  using CalculatorClassLibrary;
   8:   
   9:  namespace CalculatorClassLibrary.Test
  10:  {
  11:      [TestClass()]
  12:      public class CalculatorTests
  13:      {
  14:          [TestMethod()]
  15:          public void AddTest()
  16:          {
  17:              Assert.Fail();
  18:          }
  19:      }
  20:  }

 

Testfallen är sedan direkt färdiga att köras i Test Explorer i studion:

image

För den som vill påverka hur den genererade testkoden ser ut och namnges så finns en del enkla inställningsmöjligheter i Test-menyn:

image

image

Det ska bli intressant att följa detta tillägg framöver. Jag hoppas att det inte dröjer alltför länge innan de planerade funktionerna med stöd för alternativa testramverk och möjlighet att göra egna anpassningar för nya ramverk kommer.

Thursday, June 13, 2013 1:01:59 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Utveckling | Visual Studio
# Monday den 4 August 2008
image

Karl Seguin har sammanställt och släppt sin artikelserie Foundations of Programming som e-bok, det kanske kan vara något som passar i hängmattan om man fortfarande är i semesterläge. I PDF-form är den i alla fall på närmare 80 sidor och ger en kompakt genomgång av DDD, dependency injection, enhetstester, OR-mappning och en del annat.

Monday, August 4, 2008 1:54:56 PM (W. Europe Daylight Time, UTC+02:00)  #    Comments [0]
Läsning | Utveckling
# Friday den 14 March 2008

Jeff Atwood skriver om turkiska som ett exempel på hur svårt det är att hantera språkberoende i applikationer, se "Coding Horror: What's Wrong With Turkey?".

Problem med "turkiska I" har jag själv en del intressanta minnen av från ett globalt projekt. Vi byggde en produktdatabas som skulle hantera all produktinformation för en koncern, det inkluderade översatt information på ca 30 språk om mer än 2000 produkter. Ett av de lustigare problemen vi råkade på var att det var ruskigt svårt att veta om man hade ett fel eller inte... Men kundens turkiska kontor kom med massor av viktiga felrapporter under utvecklingen.

Det är nämligen skapligt svårt att se på en text om den innehåller felaktiga tecken när man inte fattar ett dugg av vad det står. Eftersom jag fortfarande inte har lärt mig turkiska så får jag illustrera med ett påhittat exempel: "ınteger" eller "ÿnteger" vilket är korrekt turkiska? Antagligen inget av det just i mitt fall, men det var den typen av fel som dök upp i texten, mycket ofta spårade vi problemen till att webbläsare inte alltid gjorde som man tänkt sig i fråga om teckenkodning. Eftersom applikationen hade börjat som en svensk lokal databas och växte från den utgångspunkten tog det lite tid innan jag hade fått det mesta av teckenkodningen under kontroll och all hantering hade konverterats till UTF-8.

Det är också lite intressant att Jeff nämner amerikanernas bekväma synsätt att det vore enklare om att körde InvariantCulture, dvs "amerikanska". Själv har jag varit med såpass länge att jag minns hur korkade vi i europa tyckte att amerikanerna var när de hade begränsat ASCII teckensettet till 127 tecken på 7-bitars ord... Inte mycket utrymme för resten av världen där inte.

Mina lärdomar efter det projektet är att kodningen av text i applikationer numera ska vara UTF-8 eller full Unicode rakt igenom och att det som stoppas in i en databas ska hamna i nvarchar-typade kolumner.

En hel del rekommenderad läsning finns på Microsofts Global Development and Computing Portal.

Friday, March 14, 2008 11:01:22 PM (W. Europe Standard Time, UTC+01:00)  #    Comments [0]
Databaser | Utveckling | Webb
Blog & Contact
Per Salmi
Per Salmi
Min LinkedIn Profil

Jag arbetar på Combitech AB i Linköping med konsultuppdrag och utbildning inom Microsoft .NET området. Kontakta mig gärna om ni har frågor, behov av konsulttjänster eller är intresserade av utbildning inom .NET.

Copyright © 2019 Per Salmi

Bloggmotor: newtelligence dasBlog 2.3.12105.0

Sign In
Statistics
Total Posts: 73
This Year: 0
This Month: 0
This Week: 0
Comments: 0

Datorer
All Content Copyright © 2019, Per Salmi