Care este cel mai bun mod de a pune în aplicare BDD / TDD în .NET 2.0?




Caut pentru a adăuga o suită de testare la cererea mea, cu toate acestea nu se pot muta la noi cadre de testare pentru .NET 3.5. 


Are cineva o sugestie cu privire la cadrele de testare bune de a utiliza?
Noi folosim [MbUnit](http://www.mbunit.com/) și [Rihno batjocorește](http://www.ayende.com/Blog/archive/2007/03/28/Rhino-Mocks-3.0-Released.aspx) și ei se dovedesc a lucra foarte bine împreună. Când faci TDD va fi aproape sigur nevoie pentru a face o anumită formă de injecție de dependență, în timp ce acest lucru se poate face manual, în valoare de uita la un container IoC , cum ar fi [Castelul Windsor](http://www.castleproject.org/projects/windsor/) .


Este bine în valoare de uita la ecran John Paul Bodhood lui aruncă pentru început. [Blogul lui JPB](http://www.jpboodhoo.com/)
Nr.


Aici sunt mai multe exemple de ce:


1. Cod șablon este imposibil de a scrie cu excepția caietul de sarcini,


șablon
void f( T k )
{
T x( k );
x.x();
}
Copiile ar putea arunca, parametrul care trece ar putea arunca, și `x()` s-ar putea arunca unele necunoscute excepție.


2. Excepție-caietul de sarcini tind să interzică extensibilitate.


virtual void open() throw( FileNotFound );


ar putea evolua în


virtual void open() throw( FileNotFound, SocketNotReady, InterprocessObjectNotImplemented, HardwareUnresponsive );


Ai putea chiar scrie ca


arunca( ... )


Primul nu este extensibil, cel de-al doilea este un proiect mult prea ambițios și cel de-al treilea este într-adevăr ceea ce vrei să spui, atunci când scrie funcții virtuale.


3. Cod moștenire


Atunci când scrie cod care se bazează pe o altă bibliotecă, nu't știu ce ar putea face atunci când ceva nu merge oribil greșit.


int lib\_f();


void g() throw( k\_too\_small\_exception )
{
int k = lib\_f();
dacă( k < 0 ) arunca k\_too\_small\_exception();
}


"g" se va termina, când lib\_f()`aruncă. Aceasta este (în cele mai multe cazuri), nu ceea ce vrei cu adevărat.`std::termina()` nu ar trebui să fie numit. Este întotdeauna mai bine să lăsați aplicația accident cu o excepție netratată, de la care puteți prelua un stack trace, decât la tăcere/violent muri.


4. Scrie cod care returnează erori comune și aruncă în ocazii excepționale.


Eroarea e = open( "bla.txt" );
if( e == FileNotFound )
MessageUser( "Fișier bla.txt nu a fost găsit" );
if( e == AccessDenied )
MessageUser( "nu a Reușit să deschidă bla.txt, pentru că nu ne't au citit drepturile ..." );
dacă( e != Succes )
MessageUser( "nu a Reușit din cauza la un alt eroare, codul de eroare = " + itoa( e ) );


încercați
{
std::vector k( 1000 );
// ...
}
a prinde( const bad\_alloc& b )
{
MessageUser( "de memorie, ieșirea procesului de" );
arunca;
}


Cu toate acestea, atunci când bibliotecă doar aruncă-ți de propriile excepții, puteți utiliza excepție caietul de sarcini a stat intenția ta. Principalele avantaje ale **ASP.net MVC** sunt:


1. Permite controlul complet asupra prestate HTML.
2. Oferă curat separarea preocupărilor(SoC).
3. Permite [Test Driven Development (TDD)](https://en.wikipedia.org/wiki/Test-driven_development).
4. Integrare ușoară cu cadre JavaScript.
5. În urma design de apatrid natura web.
6. Odihnitor url-uri care permite SEO.
7. Nu ViewState și PostBack evenimente


Principalul avantaj al **ASP.net Formularul Web** sunt:


1. Acesta oferă [RAD](https://en.wikipedia.org/wiki/Rapid_application_development) dezvoltarea
2. Ușor model de dezvoltare pentru dezvoltatorii de cei care vin din winform de dezvoltare. my 2 cents:

când implementezi un api nu mi se pare logic să “ghicești” ce fel de date primești pe baza inputului primit. de obicei modul de encodare a datelor îl determini folosind una din metodele de mai jos:

trimițând un http header când faci requestul (clientul api-ului) - considerat best prac… Dacă proiectul de testare este setat la țintă o platforma de 64 de biți, testele câștigat't apar în NUnit Adaptorul de Testare. Utilizați de fiecare dată când suprascrie o metodă pentru două beneficii. Fă-l astfel încât să puteți profita de compilatorul de verificare pentru a face sigur că de fapt sunt imperative o metodă atunci când crezi că ești. În acest fel, dacă ați făcut o greșeală comună de greșeli de scriere o metodă numele sau nu se potrivesc în mod corect parametrii, veți fi avertizat că metoda nu suprascrie pe cum crezi. În al doilea rând, ea face codul mai ușor de înțeles, pentru că este mult mai evident atunci când metodele sunt suprascrise.


În plus, în Java 1.6 puteți să-l utilizați pentru a marca atunci când o metodă implementează o interfață pentru aceleași beneficii. Cred că ar fi mai bine să aibă o separa de adnotare (ca `@Implementează`), dar'e mai bine decât nimic. da este trebuie doar sa stii sa-l gasesti sau sa-l iei original pana acum cateva zile existat cod mw2 alteriwnet care era foarte bun... acum sincer nici eu nu mai gasesc unu dar te descurci tu atunci incearca edg-mt2. site : http://edg-servers.de/ cauta la windows update si fa up-date la net framework. buna, uite un manual de utilizare sper sa gasesti cum sa transferi notitele!
http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&ved=0cdeqfjaa&url=http%3a%2f%2fwww.ilexgsm.ro%2fdata\_files%2fproduct\_documents%2f25%2fmanual\_ipad2\_ro.pdf&ei=vyzuujpxf8q0tabtnycodg&usg=afqjcngbvgyogtyl7f0tglfef95wwfdlfa&sig2=c3ji\_flkcshpc-sskpmjaa iti spun un joc care dupa parerea mea face cat 2.acel joc se numeste prototype.cauta pe youtube sa vezi cum e