2013-05-20 50 views
3

我剛剛開始使用utplsql,並且正在努力瞭解如何編寫一些簡單的測試用例。有很多關於如何測試程序和軟件包的很好的例子,但我更喜歡測試數據的方法。utplsql如何聲明不等於

我在下面的測試中試圖實現的是聲明我在l_rowcount中得到的數字不等於零。我相信下面的代碼測試它等於零。它應該很簡單哈哈......但我不知道該怎麼做。 utassert包沒有assertnotequalhable。

任何人都可以幫我嗎?非常感激。

PROCEDURE ut_oms_tran_head_check_1 
    IS 
     l_rowcount1 PLS_INTEGER; 
    BEGIN 
     -- Run baseline code. 
     SELECT COUNT (*) 
     INTO l_rowcount1 
     FROM sa_tran_head th, sa_store_day sd 
     WHERE th.store=sd.store 
     AND th.day=sd.day 
     AND th.store_day_seq_no=sd.store_day_seq_no 
     AND sd.business_date=to_date('09/05/2013','dd/mm/yyyy') 
     AND th.cust_order_no is null; 

     -- Test results 
     utassert.eq (
     'CUST ORDER NO', 
     l_rowcount1, 
     0 
    ); 
    END; 

回答

2

我希望utPLSQL有.neq方法,但它不會出現,並修改UTASSERT和UTASSERT2包不適合膽小的的-心臟。我通常使用的東西就像

UTASSERT.THIS('SOME_VAR (' || SOME_VAR || ') and SOME_OTHER_VAR (' || 
       SOME_OTHER_VAR || ') shouldn''t be equal', 
       SOME_VAR <> SOME_OTHER_VAR); 

分享和享受。

+0

Tks回覆鮑勃。但我不確定自己明白。 PROCEDURE的簽名是(msg_in,check_this_in,null_ok_in,raise_exc_in,register_in)。你介意多表達一下嗎? – Richie

+0

我目前無權訪問它,但IIRC NULL_OK_IN,RAISE_EXC_IN和REGISTER_IN參數具有默認值,因此不需要提供。 utPLSQL中的許多過程參數具有合理的默認值,這使得使用它更簡單。 –

+0

好酷。我會放棄它。 THKS – Richie