A következő címkéjű bejegyzések mutatása: tesztelés. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: tesztelés. Összes bejegyzés megjelenítése

2009. május 27., szerda

Unit test módszer az adatmanipulációhoz

Egy régebbi MSDN cikkben akadtam rá erre a nagyszerű módszerre, amivel a System.EnterpriseServices névtérben fellelhető tranzakciós eszközökkel szépen egységtesztelhetjük az adatbázisműveleteket, anélkül, hogy a tesztadatok elborítanának bennünket vagy mindenféle trükkös mocking és egyéb mókázásokra lenne szükség.
Persze néha az is hasznos lehet, arra is találtam egy jó módszert. Legközelebb majd leírom azt is :)

Vártam, hogy többen belém kötnek, miszerint ez integrációs teszt. Ha senki nem tette meg, akkor én kötök bele magamba. Persze a lényegen nem változtat, hogy minek nevezzük.

[TestFixture]

public class DBTest

{

    [SetUp]

    public void Setup()

    {

        // Enter a new transaction without inheriting from ServicedComponent

        Console.WriteLine("Attempting to enter a transactional context...");

        ServiceConfig config = new ServiceConfig();

        config.Transaction = TransactionOption.RequiresNew;

        ServiceDomain.Enter(config);

        Console.WriteLine("Attempt suceeded!");

    }

 

    [Test]

    public void Insert()

    {

        // Perform your magic against the database

        CategoriesManager mgr = new CategoriesManager();

        int newID = mgr.InsertCategory("MyCategory");

        Assert.IsTrue(newID != 0, "returned ID should be more than zero");

    }

 

    [TearDown]

    public void Teardown()

    {

        Console.WriteLine("Attempting to Leave transactional context...");

        if (ContextUtil.IsInTransaction)

        {

            // Abort the running transaction

            ContextUtil.SetAbort();

        }

        ServiceDomain.Leave();

        Console.WriteLine("Left context!");

        // Trying to access ContextUtil now will yield an exception

 

    }

 

}

2008. november 23., vasárnap

Levélküldés tesztelése SMTP nélkül

A legtöbb webes alkalmazásban van egy-két olyan sztori, amikor levelet szándékozunk kiküldeni a rendszerből. A végleges változatban általában SMTP szerver felhasználásával tesszük ezt, de fejlesztés közben meglehetősen kényelmetlen minden tesztfuttatás alkalmával ellenőrizni egy postaládát. Ráadásul korántsem biztos, hogy rendelkezésre áll a megfelelő szerver, a fejlesztői gépre sem feltétlenül tudunk vagy akarunk telepíteni.
Ilyenkor az SmtpClient osztály beállításával megtehetjük, hogy a saját fájlrendszerünkkel "levelezünk".
Fentiekhez a web.config állományban a következő beállítások szükségesek:

<system.net>

<mailSettings>

<smtp deliveryMethod="SpecifiedPickupDirectory">

<specifiedPickupDirectory pickupDirectoryLocation="c:\temp\mailpickup"/>

</smtp>

</mailSettings>

</system.net>


Így azonnal ellenőrizhetjük, hogy az üzenet a megfelelő tartalommal előállt-e.

[Test]

public void SendMailTest()

{

SmtpClient smtpclt = new SmtpClient();

MailMessage message = new MailMessage("from@server.com", "to@server.com");

message.Body = "Body";

message.Subject = "subject";

smtpclt.Send(message);

}


A kliensnek egyébként futás közben is megmondhatjuk, hogy a levelet ebbe a könyvtárba küldje:

smtpclt.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;

smtpclt.PickupDirectoryLocation = "c:\\temp\\mailpickup";

2008. szeptember 17., szerda

Lorem ipsum generátor

Gondolom mindenki látott már a „Lorem ipsum" kezdetű latin szöveggel feltöltött oldalakat, adatbázismezőket.

A http://www.lipsum.com/ weboldal egyik oldalról a fenti szöveg különböző fordításait tartalmazza, ha valaki – mint én is – kíváncsi rá, hogy mit is lát tulajdonképpen, amikor ezt a szöveget olvassa. Másik szerepét tekintve az oldal gyakorlatilag BLABLAGYÁR névre hallgathatna magyarul, mert tetszőleges hosszban és/vagy sorszámban tud előállítani kitöltő szöveget, ha akarod "Lorem ipsum"-mal az elején ☺ Készítettek egy remekbeszabott Firefox plugint is, hogy ne kelljen az oldalra elzarándokolni, ha az ember például egy 1000 karakterre korlátozott mező validálását vagy egy karakterszámlálót vagy effélét szeretne tesztelni.

Tud magyarul is:

http://hu.lipsum.com/

2008. július 19., szombat

Hogyan látják mások?

Gyakran van, hogy szeretnénk az elkészült weboldalunkat, ha nem is tesztelni, de legalább egy pillantást vetni rá különböző böngészőkön és operációs rendszerek alatt.
Könnyen meg lehet tenni ezt a http://www.browsershots.org címen, ahol minden jelentős (és jelentéktelen) böngésző-oprendszer párosítást megtalálunk. Csak be kell írni a megnézni kívánt oldal címét aztán várni, időnként persze visszanézegetni. A képek egy idő után törlődnek, így egy kis időt rá kell szánni, de esetneként érdemes lehet. Pl. ha épp készülünk kifizetni egy munkát amiről azt mondják, hogy így néz ki linux/konqueror alól is, de aztán meg hátha mégsem ;)

2008. július 4., péntek

Screenshot távolról

Weboldalak aktuális állapotát lehet "lefényképezni" ezen a linken keresztül.

Tesztelésen kívül alkalmas lehet akár hírgyűjtő vagy egyéb tartalomaggregáló oldalon való felhasználásra is. Ha ilyesmire akarnánk használni, akkor egyszerű GET kéréssel paraméterezve megtehetjük.
Ime egy kis példa, szigorúan IE alá, a FF biztonsági korlátok miatt hibát fog dobni rajta, de a lényeg látszik.


Itt meg a kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script type="text/javascript">
function getPic() {
var url = document.getElementById('urltxt').value;
var x = new XMLHttpRequest();
x.open('GET', 'http://www.url2jpg.co.uk/getgrab.ashx?url=' + url + '&size=13&width=1024&height=768');
x.onreadystatechange = function() {
if (x.readyState == 4) {
document.getElementById('imgdiv').innerHTML = x.responseText.replace(/\/assets/, 'http://www.url2jpg.co.uk/assets');
document.getElementById('imgtxt').value = x.responseText;
}
}
x.send(null);
}
</script>
</head>
<body>
<div>
<input type="text" id="urltxt" value="http://www.bbc.co.uk/" />
<input type="button" value="LÁSSUK" onclick="getPic()" /><br />
ez jött vissza:
<br />
<input type="text" id="imgtxt" size="50" />

<div id="imgdiv" style="width: 320px;height: 240px; overflow:auto;" src="http://www.url2jpg.co.uk/getgrab.ashx?url=http://www.bbc.com/&size=13&width=1024&height=768"></div>
</div>
</body>
</html>