Professional Documents
Culture Documents
1.
Sau khi vit code xong, lp trnh vin phi thc hin vic kim tra xem code ca mnh vit c ng khng. Cng vic ny gi l unit test. Mt s thng tin v unit test : Unit test c thc hin bi lp trnh vin (programmer) B phn QA s thc hin test nhng khng phi l unit test Mi lp trnh vin u phi thc hin & bo co kt qu unit test trc, trong hoc sau khi
develop Unit test c th thc hin t ng s dng cc on code gi l test script. Qu trnh ny gi l Trong automated unit testing, ta s vit cc hm kim tra gi cc hm cn kim tra. Nu kt
qu tr ra nh mong i th kt qu l Pass ngc li l Failed. Sau khi thc thi tt c cc hm kim tra ta s c c 1 bng tm tt kt qu : bao nhiu Pass, bao nhiu Failed v cc l do. Automated unit test script c th c lu li v chy li 1 cch d dng khi m ngun thay i Nunit l 1 framework gip chng ta thc hin unit testing trn .NET. Ngoi Nunit ta cn c
Junit cho java, cppunit cho cpp, phpunit for php ...
1.
Ci t
Ti Nunit ti a ch : http://launchpad.net/nunitv2/2.5/2.5.3/+download/NUnit-2.5.3.9345.msi Sau khi ti, nhn p bt u ci t. Lm theo cc hng dn. C th chn Setup type l
Lu :
File ci t .msi phi c quyn administrator mi ci c. Nu khng c quyn administrator, ta download file .zip v :http://launchpad.net/nunitv2/2.5/2.5.3/+download/NUnit2.5.3.9345.zip ri gii nn vo 1 th mc bt k.V d E:\NUnit
2.
S dng
Gi s ta c giao nhim v vit 1 lp c tn l Arithmetica c 4 phng thc thc thi cc nhim v cng, tr , nhn v chia cc s nguyn - Add, Subtract, Multiply v Divide. Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng 1
(1)
(2)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(3)
G vo on code nh hnh nh :
(4)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(5)
Sau khi vit xong class Arithmetica, ta phi tin hnh unit test n. Lm theo cc bc sau
(7)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(8)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(9)
project Calculator. Kt qu :
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(10)
Trong th .NET tm file nunit.framework v nhn OK. Lu : Nu khng tm thy nunit.framework th nhn th Browse v tm trong th mc bin trong th mc ci t ca nunit
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(11)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
using System; using NUnit.Framework; (12) Add dependency cho project ArithmeticaUnitTests. Click chut phi vo project Project
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
(13)
ArithmeticaUnitTests :
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
10
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
11
(14)
[TestFixture] public class ArithmeticaUnitTests { } [TestFixture] dng bo cho Nunit Nuni bit y lp unit test (15) c th tin hnh test, ta phi to 1 i tng Arithmetica. Cng vic khi to cc i tng
dng test s nm trong hm SetUp() c thuc tnh [TestFixtureSetUp] : Sau khi test xong, cc i t ng phi c hy. Cng vic hy cc i tng sau khi kim tra
(16)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
12
(17)
Gi ta s tin hnh vit hm kim tra hm Add trong lp Arithmetica. Mi hm kim tra u
phi c thuc tnh [Test] Trong hm TestAdd hm Add c gi vi 2 tham s 2 v 3. Kt qu c lu vo trong bin result. Hm Assert.AreEqual ( result, 5) l ca Nunit dng kim tra result c bng 5 hay khng ? Nu ng th hm test ny s Pass nu sai s Failed (18) Tng t , ta vit hm TestSubtract test hm Subtract :
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
13
(19)
(20)
Thuc tnh : ExpectedException(typeof(DivideByZeroException)) ExpectedException dng bo cho Nunit bit phng thc Divide c th tr v 1 exception l DivideByZeroException. Khi exception xy ra test case vn Pass. Lu : phi s dng ng tn ca exception, nu trn s dng Exception thay cho DivideByZeroException th test case s Failed. C php ca thuc tnh trn l : [Expecte ExpectedException( <Loi exception>)]
(21) 1.
Thc hin bin dch thnh file dll. Ta s c file Arithmetica.UnitTests.dll Thc thi test
Ta s thc thi test s dng nunit-gui. gui. Vo Start All Program Nunit xxx Nunit hoc file bin\net-2.0\nunit.exe trong th mc ci t ca nunit : (1) Chy nunit gui ta c mn hnh :
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
14
(2)
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
Kham kho : (1) (2) (3) (4) http://selvasamuel.wordpress.com/2007/05/02/nunit-a-tutorial http://selvasamuel.wordpress.com/2007/05/02/nunit tutorial/ http://tangent-studios.com/programming/csharp/NUnit2Tut/NUnitV2Tut.htm studios.com/programming/csharp/NUnit2Tut/NUnitV2Tut.htm http://www.autotestguy.com/archives/2006/05/nunit_quick_and.html http://www.nunit.org/index.php?p=documentation
Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng
16