Testowanie aplikacji sieci WEB

WatiN jest to biblioteką dzięki której będziesz mógł przetestować swoja aplikację pod kątem wyniku jaki zostanie uzyskany przy wyświetlaniu strony. Sprawdzisz czy wynik jaki uzyskałeś jest tym co miałeś zamiar uzyskać.

A teraz króciutki przykład. Tworzymy bibliotekę, projekt dla NUnit.

using System.Threading;
using WatiN.Core;
using WatiN.Core.Exceptions;
using NUnit.Framework;

namespace itblogs.pl
{
[TestFixture, Description("Watin class Test")]
public class TestWatin
{
	[TestFixtureSetUp]
	public void Init()
	{
		System.Threading.Thread.CurrentThread.SetApartmentState(ApartmentState.STA);
	}
	[Test]
	public void WatinIE()
	{
		using (IE ie = new IE("http://www.google.pl"))
		{
			ie.TextField(Find.ByName("q")).TypeText("itblogs");
			//ie.Button(Find.ByValue("Szukaj w Google")).Click();
			ie.Button(Find.ByName("btnG")).Click();
			int i = 3;
			do
			{
				try
				{
					ie.Link(Find.ByUrl("http://itblogs.pl/blogs/")).Click();
				}
				catch (ElementNotFoundException exp)
				{
					ie.Link(Find.ByText("Następna")).Click();
					i = 0;
				}
			}
			while ((--i) > 0);
			Assert.IsTrue(i < 0);
		}
	}
}

Ponieważ aplikacja musi być uruchomiona w trybie STA nie wystarczy tylko inicjalizacja podczas początku testu. Musimy dodać plik z rozszerzeniem config którego nazwa jest taka jak nazwa pliku dll i jest w tym samym folderze co tenże plik. Np:  mojtest.dll, nazwa pliku config to mojtest.dll.config.
Więcej informacji na ten temat możesz uzyskać na stronie Nunit oraz na stronie projektu WatiN.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<configSections>
		<sectionGroup name="NUnit">
			<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
		</sectionGroup>
	</configSections>
	<NUnit>
		<TestRunner>
			<!-- Valid values are STA,MTA. Others ignored. -->
			<add key="ApartmentState" value="STA" />
		</TestRunner>
  </NUnit>
</configuration>

Może napisany przykład nie działa zachwycająco szybko ale nie to jest celem. Projekt jest nadal rozwijany i warto obserwowac jego postępy. Dzięki niemu można też testować  aplikacje przy użyciu FireFox wszystkie dostepne narzędzia są w paczce którą ściągamy.

Firefox Authentication

Nawet nie myślałem że da się coś takiego zrobić, po prostu zawsze wpisywałem login i hasło jak chciałem się zalogować do strony intranetowej. A tutaj mamy prosty sposób w jaki można dodać swoją domenę do Firefox'a aby nie było konieczności wykonywania tej czynności.

Więcej informacji można znaleść na stronie Integrated Authentication. A ja osobiście wpadłem na to na stronie Brennan’s Blog stary post a może warto przypomnieć że cos takiego można.

Visual Studio – twoje IDE

Czy samo narzędzie Visual Studio wystarczy nam, aby pisać dobry kod w C#. Zapewne tak, ale jeżeli chcemy sprawniej tworzyć, mieć pomoc w tym co robimy musimy używać narzędzi wspomagających tworzenie właśnie takiego kodu. Jednym z narzędzi jest Resharper. Zapewne go już widziałeś na webcastach a może już go masz zainstalowanego i używasz?

Jak używać tego narzędzia, jego możliwości o tym można poczytać na blogu Maciej Aniserowicz. Jedynym pytaniem jest czy cię stać na używanie takiego narzędzia. Jedni powiedzą co to jest $ 199, ale dla drugiej osoby to przy dzisiejszym kursie znaczna część wypłaty. Ale to już indywidualne rozpatrywania za i przeciw.

Oczywiście jeszcze link do filmiku z możliwościami. Jak można poczytać troszkę zamotany ale dzięki niemu w skrócie otrzymasz jak można się poruszać po twoim ulubionym IDE.

Nasuwa się zapewne inne nurtujące was pytanie czy można użyć innych narzędzi o tej funkcjonalności. Odpowiedź brzmi nie (przynajmniej ja nie spotkałem) i patrząc na popularność zapewnie wcześniej czy później napotkasz na to narzędzie i będziesz go używać.

A co teraz?? Nom zostaje parę narzędzi które na pewno uboższe w funkcjonalność pozwolą tobie przyspieszyć pracę z twoim kodem. Np.:DPack,C# Refactory  (Poczytaj komentarze na blogu Macieja).

Pierwszy post

Witam wszystkich.
Mam nadzieję że moje informacje na tym blogu będą przydatne.
Pozdrawiam

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Witam wszystkich.");
    }
}