UMLÈí¼þ¹¤³Ì×éÖ¯

²âÊÔ£¬1£¬2£¬3...²âÊÔ...¼ì²é£¿
³ö´¦£ºÍøÂç ¡¡

ËùÓÐÓÅÐãµÄ³ÌÐòÔ±¶¼»á²âÊÔËûÃǵĴúÂë¡£µ«²âÊÔ¿ÉÒÔ±äµÃ¸üÈÝÒ×һЩÂð£¿Ëü¿ÉÒÔ±äµÃ¸üºÃһЩÂð£¿S. A. Miller ˵Ã÷Á˵¥Ôª²âÊÔÄܹ»ÌṩÄÄЩ°ïÖú£¬²¢ÇÒ˵Ã÷ÁËÒ»¸ö³ÆΪ TSQLUnit µÄ¿ª·ÅÔ´Âë²âÊÔ¿ò¼Ü¡£

Èç¹ûÄúÏñÎÒÒ»Ñù£¬Ôò¿ÉÄÜÒѾ­»¨·ÑÁ˺ܶàʱ¼äÔÚ²éѯ·ÖÎöÆ÷Öпª·¢´úÂë¡£ÔÚÄú¶Ô´úÂë¸Ðµ½ÂúÒâÖ®ºó£¬¿ÉÒÔÁ¢¼´¶Ô¿ª·¢·þÎñÆ÷ÉϵIJâÊÔÊý¾Ý¿âÔËÐÐÒ»¸ö»òÁ½¸öרÉè ²âÊÔ¡£Èç¹û¿´ÆðÀ´Ã»ÓÐʲôÎÊÌ⣬Äú±ã¿ÉÒÔ½«´úÂëͶÈëÉú²ú¡£Èç¹ûÕâÊÇÒ»¶Î¹Ø¼ü´úÂ룬»òÕ߸ôúÂë½ÏΪ¸´ÔÓ£¬ÔòÄú¿ÉÄÜ»áÖ´Ðиü¶àµÄ¼ì²é£¬ÒÔ±ÜÃâºóÑéÆÊÎö¡£ÉõÖÁÔÚÕâÖÖÇé¿öÏ£¬ÄúÒ²¿ÉÄÜÆÁÏ¢ÒÔ´ý¡£

Õâ¾ÍÊÇÎÒÔڴ󲿷ÖÖ°ÒµÉúÑÄÖÐËù²ÉÓõıàÂ뷽ʽ¡£Å¶£¬ÓÐʱÎÒ»á´æ´¢²âÊÔ²éѯÒÔ¹©½«À´Ê¹Óã¬Õâͨ³£ÊÇÒòΪ×ܲÃ/CEO/CIO/²¿Ãž­ÀíÏ°¹ßÓÚ´óԼÿÖܾ͸ıäÒ»ÏÂËû»òËýµÄÒªÇó¡£µ«ÊÇ£¬³ý´ËÒÔÍ⣬ÎÒ²»»áÔÙ×öʲô¡£ÎÒͨ³£ÔÚ²éѯ·ÖÎöÆ÷»òËüµÄ Oracle/Access/FoxPro µÈЧ¹¤¾ßÍⲿÓÃרÉè ²éѯ½øÐвâÊÔ¡£¸ü¸ßÇ¿¶ÈµÄ²âÊÔÐèҪʹÓòéѯ·ÖÎöÆ÷µ÷ÊÔÆ÷¡£ÔÚ¾øÍûµÄÇéÐÎÏ£¬ÐèҪʹÓà PRINT Óï¾ä¡£

Ä¿Ç°´æÔÚ Ò»ÖÖ¸üºÃµÄ·½Ê½¡£

³¬Ô½×¨Éè ²âÊÔ

µ±ÎÒµÄ SIL ²¿ÃŲÉÓü«ÏÞ±à³Ì (XP) ʱ£¬ÎÒÃÇ»¹²ÉÓÃÁ˸÷½·¨Â۵ĵ¥Ôª²âÊÔ²¿·Ö£¬¶øËüÃÇÁ½Õ߶¼Ê¹ÎÒ³ÉΪ¸ü³öÉ«µÄ¿ª·¢ÈËÔ±¡£µ«ÊÇ£¬¼´Ê¹Äú²»ÔÚ XP »·¾³Öй¤×÷£¬ÄúÈÔÈ»¿ÉÒÔ´Ó XP ·ç¸ñµÄµ¥Ôª²âÊÔÖлñÒæ¡£

µ¥Ôª²âÊÔ²»Í¬ÓÚ½ÓÊܲâÊÔ¡£µ¥Ôª²âÊÔÓÃÓÚ²âÊÔ½ÏСµÄ´úÂë¿é£¨ÀýÈ磬´æ´¢¹ý³Ì£©£¬¶ø½ÓÊܲâÊÔ¸ü¶àµØÉæ¼°µ½Óû§ÊÇ·ñ¿ÉÒÔ½ÓÊÜ UI¡£ÒÔÏÂÊÇÎÒ·¢Ïֵĵ¥Ôª²âÊÔµÄÎå¸öÓŵ㣺

ËüÃÇÄܹ»ÕÒ³öÓ¦¸Ã³Ðµ£ÔðÈεĵ±ÊÂÈË¡£ÄúÊÇ·ñÊÕµ½¹ýµç×ÓÓʼþ£¬¸æËßÄúÓ¦¸ÃÐÞ¸´³ÌÐò´íÎ󣬶øÕâʵ¼ÊÉÏÊÇÆäËûij¸öÈËËù×÷¸ü¸ÄµÄ¸±×÷Ó㿺ã¬Èç¹ûÄú¾ßÓÐһЩÁãÉ¢µÄ²âÊÔ²éѯ£¬Ç뽫ËüÃÇ°ü×°µ½¿ÉÒÔ¶¨ÆÚÔËÐУ¨»òÐíÊÇÔÚÍíÉÏ£©µÄ´æ´¢¹ý³ÌÖС£ÇëÈ·±£ÔÚµ¥Ôª²âÊÔʧ°ÜʱÄܹ»Éú³Éµç×ÓÓʼþ¡£

¡¡Éú³É¿â²»ÐèÒª»¨·ÑºÜ³¤Ê±¼ä¡£Ã¿¸ö´æ´¢¹ý³ÌºÍÿ¸ö´æ´¢º¯Êý¶¼Ó¦µ±¾ßÓÐΪËü±àдµÄ²âÊÔ£¬¶ø´¥·¢Æ÷Ò²Ó¦¸ÃÈç´Ë¡£Èç¹ûÕâÌýÆðÀ´ÓÐЩ¿Á¿Ì£¬ÄÇôÇëÏëÒ»Ï룬Äܹ»ÔÚÎÊÌâµ½´ïÉú²ú·þÎñÆ÷֮ǰ²¶×½µ½Ëü£¬´Ó¶øÕü¾ÈÄú×Ô¼º£¬½«»áÊÇÒ»ÖÖ¶àôºÃµÄ¸Ð¾õ¡£Èç¹ûÄú¾ßÓдóÁ¿¾Éʽ´úÂ룬ÄÇôΪÿ¸öµ¥Ôª±àд²âÊÔ¿ÉÄÜÐèÒª¶àÄêµÄ¹¤×÷£¬²¢ÇÒÄúÒ²²»Äܽö½öΪÁ˱àд²âÊÔ¶øֹͣеĿª·¢¹¤×÷¡£µ«ÊÇ£¬Äú¿ÉÒÔΪÿ¶ÎдúÂë±àд²âÊÔ£¬Ò²¿ÉÒÔΪÄúÐ޸ĵÄÿ¸ö¹ý³Ì±àд²âÊÔ¡£Óò»Á˶೤ʱ¼ä£¬Äú¾Í»áΪ¹Ø¼üµÄ¾Éʽ´úÂëºÍдúÂë±àдÖÚ¶àµÄ²âÊÔ¡£

¡¡ÇáËÉ´´½¨×¼È·µÄ´úÂëÎĵµ¡£Ã¿¸ö¹ý³Ì»òº¯Êý¶¼Ó¦µ±Óò»Í¬µÄ²ÎÊý×éºÏµ÷Óá£Õâ²»½öÄܹ»È·±£´úÂë°´Ô¤ÆÚ·½Ê½¹¤×÷£¬¶øÇÒ»¹ÌṩÁËÓйØÄúµÄ¹¤×÷µÄ×îжø׼ȷµÄÎĵµ¡£ÁíÍâÒ»¸ö±àÂëÔ±Ö»Ðè²é¿´ÄúµÄ²âÊÔ£¬¾Í¿ÉÒÔÁ˽â¶ÔÄúµÄ¹ý³Ì½øÐе÷ÓõÄʾÀý¡£Ë­ÖªµÀÄØ£¿Ä³Ò»Ì죬ÕâÁíÒ»¸ö±àÂëÔ±¿ÉÄܾÍÊÇÄú×Ô¼º¡£

¡¡ËüÃÇÆÈʹÄúÔ¤ÏȽøÐÐÒ»µã¶ù˼¿¼ºÍ¼Æ»®¡£ÄúÓ¦µ±ÔÚ±àдʵ¼ÊµÄ¹ý³Ì»òº¯Êý֮ǰ±àд×Ô¼ºµÄµ¥Ôª²âÊÔ¡£¡°Ê²Ã´£¿¡±Äú˵£¬¡°ÎÒ¿¹Ò飡ÎÒÃÇÈçºÎΪÉÐδ½øÐбàÂëµÄ¶«Î÷±àд²âÊÔ£¿¡±

¡¡ÓÐÒ»¸öºÜÀϵÄЦ»°£¬Ëü½²µÄÊÇ£ºÓÐÒ»¸ö¾­Àí˵£º¡°ÎÒ½«ÅªÇå³þËûÃÇÐèҪʲô¡£ÆäÓàµÄÈË¿ªÊ¼±àÂë¡£¡±ÄÇô£¬±àÂëÔ±ÔÚÖªµÀËûÃÇÐèÒª±àдʲô֮ǰÊÇÎÞ·¨¿ªÊ¼¹¤×÷µÄ£¬²»ÊÇÂ𣿵±ÄúÊ×Ïȱàд²âÊÔʱ£¬Äú½«±»ÆÈ¿¼ÂÇÔÚ¿ªÊ¼±àд¸Ã¹ý³Ì֮ǰ£¬ÄúÏ£Íû¸Ã¹ý³ÌÍê³Éʲô¹¤×÷¡£

¡¡ËüÃÇȷʵ¿ÉÒÔ½ÚÊ¡ÄúµÄʱ¼ä¡£¿ª·¢ÈËÔ±¾­³£±§Ô¹£¬±àд²âÊÔÐèÒª»¨·Ñ±È±àдʵ¼Ê¹ý³Ì¸ü¶àµÄʱ¼ä¡£ÓÐʱµÄÈ·Èç´Ë¡£µ«ÊÇÇ뿼ÂÇÒÔÏÂÇé¿ö£ºÎÒ×î½ü½ÓÊÜÁËÒ»ÏîÈÎÎñ£¬¼´£¬ÐÞ¸ÄÎÒÔø¾­Óöµ½¹ýµÄ×îÄѵĴ洢¹ý³ÌÖ®Ò»¡£ËüÊǾÉʽ´úÂ룬µ«ÊÇÎÒÈÔÈ»Ê×ÏȱàдÁ˲âÊÔ¡£Ëü»¨·ÑÁËÎÒ¼¸ÌìµÄʱ¼ä²ÅÍê³É£¬²¿·ÖÔ­ÒòÔÚÓڶԸùý³ÌËùÊ©¼ÓµÄÒªÇó¡£Êµ¼ùÖ¤Ã÷£¬³öÓÚÎÒ¸Õ²ÅÁгöµÄËùÓÐÔ­Òò£¬¸Ã²âÊԷdz£ÖØÒª£¬²¢ÇÒµ±ÎÒ±ØÐëÖØбàд¸Ã¹ý³ÌÒÔ¸ÄÉÆÐÔÄÜʱ£¬Ëü±äµÃÃÖ×ãÕä¹ó¡£

¡¡µ¥Ôª²âÊÔÏÔʾÖØбàдµÄ¹ý³ÌÖдæÔÚ´óÁ¿´íÎ󣬶øÎÒÄܹ»ºÜ¿ìµØÕÒµ½Ã¿¸ö´íÎóµÄ¸ùÔ´£¬Ëù»¨·ÑµÄʱ¼äÖ»Õ¼²»Ê¹Óõ¥Ôª²âÊÔʱµÄ¼¸·ÖÖ®Ò»¡£È»ºó£¬µ±ÎÒÈÏΪÒѾ­Íê³É¸ÃÈÎÎñʱ£¬Ä£ºý²âÊÔʧ°ÜÁË¡£Ö÷Ñ­»·ÖеıäÁ¿Ö®Ò»´æÔÚȱÏÝ¡£Èç¹û´úÂëÒÔÕâÖÖ״̬·¢²¼µ½Éú²ú»·¾³ÖУ¬ÄÇôÕ⽫ÊÇÒ»¸öÄÑÒÔ²¶»ñµÄ³ÌÐò´íÎó¡£×îÖÕ£¬ÎÒÒԱȲÉÓÃÆäËû·½Ê½¸ü¿ìµÄËÙ¶ÈÍê³ÉÁËÕâÏîÈÎÎñ¡£

ÈçºÎ±àд T-SQL µ¥Ôª²âÊÔ

ÔÚÎÒ¸æËßÄúÓÐ¹Ø T-SQL ²âÊÔ¿ò¼ÜµÄÄÚÈÝ֮ǰ£¬Ê×ÏÈÐèÒªÌáÐÑÄú×¢ÒâÁ½¸ö·Ç³£»ù±¾µÄÔ­Ôò£º

µÚÒ»£¬ÄúÐèÒªÒ»¸ö¾ßÓÐÁ¼ºÃ²âÊÔÊý¾ÝµÄÊý¾Ý¿â¡£ÎÒÓá°Á¼ºÃÊý¾Ý¡±±íʾÀ´×ÔÏÖʵÊÀ½çµÄÕæʵÊý¾Ý¡£ÎÞÂÛÄúÊÇÒ»¸ö¶àôÓÅÐãµÄ³ÌÐòÔ±£¬¶¼ÎÞ·¨³ä·ÖµØΪӦÓóÌÐò·ÂÔìÊý¾Ý¡£¼´Ê¹ÒªÌæ»»µÄ¾ÉʽϵͳÓÉÖ½ÕÅ×é³É£¬Ò²ÒªÕÒһλÊý¾Ý¼ÈëÔ±À´ÔÚijЩ±íÖÐÊäÈëÊý¾Ý¡£Íê³É»ñµÃÕæʵÊý¾ÝËùÐèµÄ¹¤×÷¡£[¾¡¹ÜÈç´Ë£¬ÈÔÈ»´æÔÚ²âÊÔÊý¾ÝÉú³ÉÆ÷¡£Çë²Î¼û±¾ÆÚÖÐÎÒµÄÌáʾ¡°Éú³É²âÊÔÊý¾Ý¡±¡ª ±àÕß]

¡¡µÚ¶þ£¬²»Ó¦µ±Õë¶ÔÉú²úÊý¾Ý¿â½øÐпª·¢¡£ÄúÓ¦µ±¾ßÓÐÒ»¸ö¿ª·¢»ò²âÊÔÊý¾Ý¿â£¬ÒÔ±ãÂú×ãÄú×Ô¼ºµÄÐèÒª¡£¹ýÈ¥£¬µ±ÎÒÔÚ Oracle ½øÐпª·¢Ê±£¬ÎÒÔø¾­»¨·ÑÁËÒ»ÖܵÄʱ¼ä½«¿ª·¢Êý¾Ý¿â·ÅÔÚÒ»¸ö³Â¾ÉµÄ·þÎñÆ÷ÉÏ¡£SQL Server ¿ª·¢ÈËԱûÓÐÕâÑùµÄ½è¿Ú¡£

ÔÚΪ¿ª·¢Êý¾Ý¿âÅ䱸Á¼ºÃµÄÊý¾ÝÒÔºó£¬ÄúÐèҪijÖÖ¿ò¼ÜÒÔ±ãÔËÐвâÊÔ¡£Äú¿ÉÒÔ±àд×Ô¼ºµÄ¿ò¼Ü£¬µ«ÊÇΪʲôҪÕâô×öÄØ£¿ÒѾ­ÓÐÒ»¸ö¿ÉÓõĿò¼ÜÁË¡£

TSQLUnit ¼ò½é

TSQLUnit ÊÇ T-SQL µÄÒ»¸ö¿ª·ÅÔ´Âëµ¥Ôª²âÊÔ¿ò¼Ü£¬ËüÓÉ Henrik Ekelund ±àд£¬²¢ÇÒ¿ÉÒÔ´Ó http://sourceforge.net/projects/tsqlunit »ñµÃ¡£ÒÔÏÂÊÇÒ»¸öÓйØÎÒÈçºÎʹÓÃËüµÄʾÀý¡£

ÎÒµÄ TSQLUnit ²âÊÔ²ÉÓÃÁËÀàËƵÄÈý²¿·Öģʽ£º1) µ¥Ôª²âÊÔÉèÖã¬2) Ö´ÐÐÄ¿±ê¹ý³Ì£¬ºÍ 3) ¼ì²é½á¹û¡£

ÔÚµ¥Ôª²âÊÔÉèÖùý³ÌÖУ¬ÎÒ¾­³£½øÐмì²é£¬ÒÔÈ·±£Ã»ÓÐÈ˳ÃÎÒ²»×¢ÒâʱÆÆ»µÁËÎÒµÄÊý¾Ý£º

DECLARE @nId INT, @nNewId INT a€¡±- @nNewId is for later
SELECT @nId = [ID] FROM MyTable
WHERE MyField = 'whatever'
IF @nId IS NULL -- or @@ROWCOUNT = 0
EXEC tsu_failure 'The data has changed.
''whatever'' couldn''t be found'

IF ¿éÓÃÓÚ¼ì²éÔ¤ÆڵļǼ¡£Èç¹ûÕÒ²»µ½¸Ã¼Ç¼£¬Ôò²âÊÔ»áʧ°Ü£¬²¢ÇÒ»áÉú³É´íÎóÐÅÏ¢¡£²âÊÔ¿ò¼ÜÒƶ¯ÖÁÏÂÒ»¸öµ¥Ôª²âÊÔ¡£Äú²»ÐèÒªÔÚʧ°ÜÏûÏ¢×Ö·û´®ÖÐʹÓøõ¥Ôª²âÊÔµÄÃû³Æ£¬ÒòΪµ±²âÊÔʧ°Üʱ£¬TSQLUnit ½«ÎªÄúÃüÃûËü¡£

ÏÖÔÚ£¬ÎÒµ÷Óý«Òª±àдµÄ´æ´¢¹ý³Ì£º

EXEC CreateMyTableNewRec @nId, @nNewId OUTPUT

ÕýÈçÄú¿´µ½µÄÄÇÑù£¬ÎÒÒѾ­È·¶¨ÁËÐèÒªÀ´×ÔÕâһйý³ÌµÄÊä³ö²ÎÊý¡£ÔÚ¼ì²é½á¹ûµÄ¹ý³ÌÖУ¬ÎÒÈ·±£Êä³ö²ÎÊýȷʵÌî³äÁËijЩÄÚÈÝ£º

IF @nNewId IS NULL
EXEC tsu_failure
'A new record was not created for table MyTable.'

ÎÒ¿ÉÒÔ½øÒ»²½¼ì²é¸ÃÖµ£¬ÒԲ鿴мǼÊÇ·ñÊÇ°´ÕÕÎÒÏ£ÍûµÄ·½Ê½´´½¨µÄ¡£

ÿ¸ö TSQLUnit ²âÊÔ±¾Éí¶¼ÊÇÒ»¸ö´æ´¢¹ý³Ì¡£Çåµ¥ 1 ÏÔʾÁËÔÚ½«ÉÏÊöËùÓдúÂë¶Î·ÅÔÚÒ»ÆðʱËù¾ßÓеÄÑù×Ó£º

Çåµ¥ 1. T-SQL µÄÍêÕûµ¥Ôª²âÊÔ¡£

CREATE PROCEDURE ut_MyTable_NewRec
AS
--== Setup ==--
DECLARE @nID INT, @nNewId INT
SELECT @nId = ID FROM MyTable
WHERE MyField = 'whatever'
IF @nId IS NULL -- or @@ROWCOUNT = 0
EXEC tsu_failure 'The data has changed.
''Whatever'' couldn''t be found'
--== Execute ==--
EXEC CreateMyTableNewRec @nId, @nNewId OUTPUT
--== Check ==--
IF @nNewId IS NULL
EXEC tsu_failure 'A new record was not created
for table MyTable.'
GO

Çë×¢Òâ´æ´¢¹ý³ÌµÄÈý²¿·ÖÃû³Æ ¡ª ut_MyTable_NewRec¡£Ç°×º¡°ut_¡±ÌáÐÑ TSQLUnit ÕâÊÇÒ»¸öËüÓ¦µ±ÔËÐеĵ¥Ôª²âÊÔ¡£Èç¹ûÄúÒѾ­½«Ç°×º ut_ ÓÃÓÚÆäËûÄ¿µÄ£¬Ôò TSQLUnit ÔÊÐíÄú½«ËüÉèÖÃΪÆäËûÄÚÈÝ¡£¡°MyTable¡±ÊÇÏà¹Øµ¥Ôª²âÊÔ×飨³ÆΪ²âÊÔ×飩µÄÃû³Æ¡£ÀýÈ磬Äú¿ÉÒÔÌí¼ÓÁíÒ»¸öÃûΪ ut_MyTable_DeleteRec µÄµ¥Ôª²âÊÔ¡£MyTable ×齫ͬʱ¶ÔÔÚ MyTable ÖÐÌí¼ÓºÍɾ³ý¼Ç¼½øÐвâÊÔ¡£¸Ã×é¿ÉÒÔ¶ÀÁ¢ÓÚÆäËû²âÊÔ×éÔËÐС£¸ÃÃû³ÆµÄµÚÈý²¿·Ö ¡ª¡°NewRec¡±»ò¡°DeleteRec¡±Î¨Ò»µØ±êʶ¸Ãµ¥Ôª²âÊÔ¡£

Çë×¢Ò⣬Äú²»ÐèÒªÔÚÿ¸öµ¥Ôª²âÊÔÖÐʹÓà BEGIN TRAN ºÍ ROLLBACK£»TSQLUnit »áΪÄú´¦Àí¸ÃÎÊÌâ¡£

ÔËÐе¥Ôª²âÊÔ

ΪÁËÔËÐÐÇåµ¥ 1 Öеĵ¥Ôª²âÊÔ£¬ÄúÐèÒªÉèÖÿò¼Ü¡£´Ó²éѯ·ÖÎöÆ÷ÖУ¬¶Ô¿ª·¢Êý¾Ý¿âÔËÐÐ tsqlunit.sql¡£ÄúÖ»ÐèÒª¶Ô¸ÃÊý¾Ý¿âÖ´ÐÐÒ»´Î¸Ã²Ù×÷¡£½ÓÏÂÀ´£¬´´½¨¹ý³Ì ut_MyTable_NewRec£¨Èç¹ûÄúÉÐδ´´½¨µÄ»°£©¡£ÏÖÔÚ£¬ÄúÒѾ­×¼±¸¾ÍÐ÷ÁË¡£Ö»ÐëÖ´ÐÐÒÔϵ¥Ôª²âÊÔ£º

-- This will run all tests for suite MyTable,
EXEC tsu_RunTests MyTable

¹Ì¶¨¼þ

¼ÙÉèÎÒÏ£ÍûʹÐí¶à¼Ç¼¿É¹©Ò»¸ö×éÖеÄËùÓÐ µ¥Ôª²âÊÔʹÓá£ÎÒ²»Ï£ÍûΪÿ¸ö²âÊÔ±àдÏàͬµÄÉèÖôúÂë¡£TSQLUnit ͨ¹ýÉèÖù̶¨¼þ ½â¾öÁËÕâ¸öÎÊÌâ¡£¹Ì¶¨¼þÖеĴúÂ뽫ÔÚÿ¸öµ¥Ôª²âÊÔ֮ǰÔËÐС£

ÀýÈ磬ÉÏÊö MyTable ×éµÄÉèÖù̶¨¼þ½«ÃüÃûΪ ut_MyTable_setup¡£¸ÃÃû³ÆµÄµÚÈý²¿·Ö¡°setup¡±ÌáÐÑ TSQLUnit ½«¸Ã¹ý³ÌÊÓΪ¸Ã×éµÄÉèÖù̶¨¼þ¡£Ëü½«ÈçÏÂËùʾ£º

CREATE PROCEDURE ut_MyTable_setup
AS
INSERT INTO MyTable ([Description])
VALUES ('something')
--( more records inserted here
GO

SQL Server ÉçÇø·Ç³£¸Ðл Henrik Ekelund ºÍËûµÄ¹ÍÖ÷ʹ TSQLUnit ³ÉΪ¿ª·ÅÔ´Âë¡£


°æȨËùÓУºUMLÈí¼þ¹¤³Ì×éÖ¯