Thread View: alt.pl.comp.lang.csharp
6 messages
6 total messages
Started by GrzybSon
Thu, 04 Nov 2010 14:05
[NUnit] [WCF] testowanie usług
Author: GrzybSon
Date: Thu, 04 Nov 2010 14:05
Date: Thu, 04 Nov 2010 14:05
16 lines
1527 bytes
1527 bytes
Witam, właśnie sobie napisałem klasę do testowania metod webserwisu, ale ponieważ webserwis ma pewną logikę wywołań metod chciałbym, aby metody klasy testującej były wykonywane w odpowiedniej kolejności. Chodzi mi o to, że WS ma metodę zaloguj (dostaje tam tokena na podstawie usera, hasła) potem pewne metody dodaj, usuń itp. Chodzi mi o to by te metody testowe wykonywały sie w odpowiedniej kolejności np. Zaloguj najpierw potem dalsze i na końcu wyloguj. Czy da sie nadać kolejność metodom testowym? -- Pozdrawiam, Macko
Re: [NUnit] [WCF] testowanie usług
Author: Łukasz 'Maly' Ostrowski
Date: Thu, 04 Nov 2010 14:27
Date: Thu, 04 Nov 2010 14:27
43 lines
2096 bytes
2096 bytes
On Thu, 4 Nov 2010 15:05:04 +0100, GrzybSon wrote:
> <snip>
> Chodzi mi o to by te metody testowe wykonywały sie w odpowiedniej kolejności
> np. Zaloguj najpierw potem dalsze i na końcu wyloguj.
> Czy da sie nadać kolejność metodom testowym?
Generalnie Unitem w Twoich Unit Testach powinien
być kompletny flow of control:
TestLogowania:
ws.Login();
TestRobieniaCzegos:
ws.Login();
ws.RobCos();
TestRobieniaCzegosInnego:
ws.Login();
ws.RobCosInnego();
w taki sposób żeby każdy test był samodzielnym,
wyizolowanym i spójnym bytem nie polegającym na
niczym zewnętrznym.
[ http://stackoverflow.com/questions/61400/what-makes-a-good-unit-test ]
Nie powinieneś polegać na kolejności testów,
na efektach ubocznych innych testów, niektóre
frejmłorki wykonują testy alfabetycznie, niektóre
losowo, taka jest specyfika Unit Testing.
[NUnit akurat odpala testy alfabetycznie, aczkolwiek
nie radziłbym na tym polegać ;-)]
Defacto, test [ze środka] nie powinien zawieść tylko
dlatego bo Dev/Tester odpalił tylko ten jeden test,
zamiast odpalać wszystkie.
p.s. z ciekawości, mock'ujesz WebService czy komunikujesz
sie z realnym endpointem? ;-)
--
Pozdrawiam,
Łukasz 'Maly' Ostrowski. http://l3v.eu/
Re: [NUnit] [WCF] testowanie usług
Author: GrzybSon
Date: Thu, 04 Nov 2010 14:37
Date: Thu, 04 Nov 2010 14:37
44 lines
2244 bytes
2244 bytes
> Generalnie Unitem w Twoich Unit Testach powinien > być kompletny flow of control: > > TestLogowania: > ws.Login(); > > TestRobieniaCzegos: > ws.Login(); > ws.RobCos(); > > TestRobieniaCzegosInnego: > ws.Login(); > ws.RobCosInnego(); > > w taki sposób żeby każdy test był samodzielnym, > wyizolowanym i spójnym bytem nie polegającym na > niczym zewnętrznym. Ox, dzięki za wyjaśnienie. > > [ http://stackoverflow.com/questions/61400/what-makes-a-good-unit-test ] > > Nie powinieneś polegać na kolejności testów, > na efektach ubocznych innych testów, niektóre > frejmłorki wykonują testy alfabetycznie, niektóre > losowo, taka jest specyfika Unit Testing. > [NUnit akurat odpala testy alfabetycznie, aczkolwiek > nie radziłbym na tym polegać ;-)] > > Defacto, test [ze środka] nie powinien zawieść tylko > dlatego bo Dev/Tester odpalił tylko ten jeden test, > zamiast odpalać wszystkie. Oki. > > p.s. z ciekawości, mock'ujesz WebService czy komunikujesz > sie z realnym endpointem? ;-) Nie wiem co to znaczy mockować, ale działam na żywym realnym webserwisie odpalanym pod środowiskiem. Można to lepiej zrobić?
Re: [NUnit] [WCF] testowanie usług
Author: Wiktor Zychla
Date: Thu, 04 Nov 2010 15:46
Date: Thu, 04 Nov 2010 15:46
20 lines
1732 bytes
1732 bytes
>> TestLogowania: >> ws.Login(); >> >> TestRobieniaCzegos: >> ws.Login(); >> ws.RobCos(); >> >> TestRobieniaCzegosInnego: >> ws.Login(); >> ws.RobCosInnego(); >> >> w taki sposób żeby każdy test był samodzielnym, >> wyizolowanym i spójnym bytem nie polegającym na >> niczym zewnętrznym. jeśli się da, to dobrze pomyśleć o wydzieleniu login/logout do metod z atrybutami [SetUp]/[TearDown], żeby nie powielać ich wewnątrz każdego testu. Wiktor Zychla
Re: [NUnit] [WCF] testowanie usług
Author: 3P
Date: Thu, 04 Nov 2010 18:46
Date: Thu, 04 Nov 2010 18:46
37 lines
2215 bytes
2215 bytes
Dnia 04-11-2010 o 16:46:01 Wiktor Zychla <wzychla@nospam.com> napisał(a): >>> TestLogowania: >>> ws.Login(); >>> >>> TestRobieniaCzegos: >>> ws.Login(); >>> ws.RobCos(); >>> >>> TestRobieniaCzegosInnego: >>> ws.Login(); >>> ws.RobCosInnego(); >>> >>> w taki sposób żeby każdy test był samodzielnym, >>> wyizolowanym i spójnym bytem nie polegającym na >>> niczym zewnętrznym. > > jeśli się da, to dobrze pomyśleć o wydzieleniu login/logout do metod z > atrybutami [SetUp]/[TearDown], żeby nie powielać ich wewnątrz każdego > testu. > > Wiktor Zychla > Setup/Teardown nie jest zalecane, bo utrudnia czytanie kodu testu. W takim MBUnit chyba celowo wogóle nie umożliwili Setup/Teardown. Co do mockowania WS. To jest test tego WS więc nie można tego zmockować :) Ja na to patrzę tak. WebService jest tylko interfejsem do mojej logiki tak samo jak może nim być okienko, lub konsola i klawiatura. Logika do osobnej klasy/klas i testujemy klasy. A potem testy integracji testujące czy da się to wywoływać przez WS raz na jakiś czas. Testy jednostkowe w całości bez żadnych trudności, konfiguracji itd powinny być bez problemu wykonywane na każdym komputerze w krótkim czasie.
Re: [NUnit] [WCF] testowanie usług
Author: Łukasz 'Maly' Ostrowski
Date: Thu, 04 Nov 2010 23:51
Date: Thu, 04 Nov 2010 23:51
33 lines
2125 bytes
2125 bytes
On Thu, 04 Nov 2010 19:46:58 +0100, 3P wrote: > Setup/Teardown nie jest zalecane, bo utrudnia czytanie kodu testu. > W takim MBUnit chyba celowo wogóle nie umożliwili Setup/Teardown. Agreed. > Co do mockowania WS. To jest test tego WS więc nie można tego zmockować :) > Ja na to patrzę tak. WebService jest tylko interfejsem do mojej logiki tak > samo > jak może nim być okienko, lub konsola i klawiatura. Dyskusyjne, zależy czy testuje WS-behaviour czy composite clienta do tegoż serwisu =]. ;-) > Logika do osobnej klasy/klas i testujemy klasy. A potem testy integracji > testujące > czy da się to wywoływać przez WS raz na jakiś czas. Testy jednostkowe w > całości bez żadnych trudności, > konfiguracji itd powinny być bez problemu wykonywane na każdym komputerze > w krótkim czasie. Agreed again. ;-) >> Nie wiem co to znaczy mockować, ale działam na żywym realnym webserwisie >> odpalanym pod środowiskiem. Mock - udawać, nie używać żywej implementacji czegoś, tylko uhm, kontraktu. http://en.wikipedia.org/wiki/Mock_object -- Pozdrawiam, Łukasz 'Maly' Ostrowski. http://l3v.eu/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads