Tuesday, May 1, 2012

Unit Test With Database


Hướng dẫn test câu lệnh SQL với Database Unit Test

Test câu lệnh SQL

Mở Visual Studio IDE
Chọn menu Test -> New Test ở menu trên cùng
Hộp thoại xuất hiện
Chọn Database Unit Test
Test Name: tên project
Add to Test Project: chọn ngôn ngữ c# hoặc VB

Đặt tên cho project
Chọn database để chạy test
Chọn nút New Connection
Chọn Server name, chọn database name
Click vào “Click here to create”
Database Unit Test Designer sẽ xuất hiện để viết các câu lệnh test câu truy vấn
           
Thêm mới test method bằng cách chọn nút + ở trên cùng của designer.
   Điền tên test name
  Thêm câu lệnh T-SQL vào màn hình chính trên Designer
Chọn inconclusive test condition trong Test conditions xóa nó đi (image 10)
Thêm 1 Row Count Test bằng cách chọn Row Count từ drop down và nhấn nút +
Thiết lập Expected Rows trong cửa sổ Properties
Bây giờ bạn đã có thể chạy test ! mở Test View. Chọn Test -> Windows -> Test View menu.
Click phải vào test và chọn Run Selection.
Xem lại kết quả trong cửa sổ Test Results.
Và test của bạn đã đúng !!!!!!

v  Test  stored procedure
§  Tạo mới 1 solution tên: QuocHungDatabaseLogin
Mở Server Explorer, click phải trên Data Connections | Create new SQL Server Database…”:

Nhập Server name : tên đăng nhập vào SQL Server
và database name: QuocHungLogin
Trong  solution, thêm mới Microsoft SQL Server 2005 project and đặt tên QuocHungLoginDB:
Click phải lên Project QuocHungLoginDB | Properties. Click vào tab “Build” và thiết lập lại target connection
Bạn nhớ uncheck  “Block incremental deployment if data loss might occur” (image 20)
Build project thành công!!!
Bây giờ thêm mới 1 new Test Project để test database của bạn. Click phải lên solution, và Add new Test Project đặt tên là QuocHungLoginDBTests
Khi đã tạo project xong, xóa 3 files: the AuthoringTests.txt, ManualTest1.mht and UnitTest1.cs(không bắt buộc). Click phải vào QuocHungLoginDBTests và chọn Add -> New Test…->Database Unit Test và đặt tên là BlankUsernameFails.cs:
Sau đó cấu hình như sau:
Trong  Database Connection
            Execute unit test…: chọn database để test
Trong Deployment
Check vào Automatically
Database Project : QuocHungLoginDB.dbproj
Deployment configuration: Default

Trong của sổ Designer viết câu lệnh gọi Stored
Xóa inconclusive condition đã tồn tại, thêm mới scalar value condition
Click phải vào Scalar Value condition chọn properties và thiết lập lại Expected value : false
Tiếp tục thực thi TEST :
 Test->Run->Tests in Current Context. Kết quả là fail ! không tìm thấy Stored
Khắc phục:
Click vào  QuocHungLoginDB và chọn menu View->Schema View.

Bạn sẽ thấy Schema View như sau:
Click phải vào Stored Procedures, và chọn Add->Stored Procedure…. Bạn sẽ thấy hộp thoại xuất hiện, đặt tên là sp_login
Vào  chạy test, menu Test->Run->Tests in Current Context. Tiếp tục thất bại
Lỗi này nói rằng stored đã tồn tại trong database nhưng chưa đúng, nên sửa lại
Và bây giờ kết quả đã đúng!!!!!

0 comments:

Post a Comment