You are on page 1of 16

M BO CHT LNG PHN MM Tun 7 Gii thiu Nunit

1.

Gii thiu unit testing

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

automated unit testing

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

Typical hay Complete.

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)

M Visual Studio 2005, to 1 project thuc kiu Class Library c tn l Calculator :

(2)

i tn lp Class 1 do VS2005 to sn thnh lp Arithmetica :

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)

Th l xong, ta vit xong lp Arithmetic. Bin dch v sa li c php nu c. 3

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

unit test (6) To 1 project mi vi kiu Class Library, c tn : Arithmetica.UnitTests :

(7)

i tn file Class 1 thnh Arithmetica.Unitest

Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng

(8)

Vo File Open Project/Solution, Project/Solution Chn project calculator to bc 1. Nh chn vo

Add to Solution add project calculator vo project test ca ta :

Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng

(9)

i tn ca namespace trong file ArithmeticaUnitTests.cs thnh Calculator cho ging vi file

project Calculator. Kt qu :

Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng

(10)

Trong project Arithmetic.UnitTests : click chut phi vo ch References Add reference.

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)

Thm dng sau vo lp ArithmeticaUnitTests 8

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

Dependencies Check vo o Calculator OK

Trn Khi Hong Khoa Cng ngh Thng tin Ton ng dng i hc Tn c Thng

(13)

Tin hnh add file Caculator.dll (trong th mc Calculator\bin\debug) debug) vo references ca

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)

Thm Attribute [TestFixture] vo trc lp ArithmeticaUnitTests :

[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)

xong s nm trong hm TearDown() vi thuc tnh [TestFixtureTearDown] :

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)

Tng t , ta vit hm TestMulitply Test test hm Multiply :

(20)

Tng t , ta vit hm TestDivide Test test hm Divide :

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)

Vo File Open Project. Chn File Arithmetica.UnitTests.dll nm trong th mc bin\debug

ca th mc project Nhn Open :

Ta s thy cc hm test bn ca s bn tri (3) Nhn nt Run : 15

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

You might also like