我正在嘗試爲最近編寫的一些Ada代碼編寫一些單元測試,我有一個特定的情況,我期望得到一個異常(如果代碼正常工作,我不會但在這種情況下,我所做的只是測試,而不是編寫代碼)。如果我在測試例程中處理異常,那麼我看不到如何在該過程中繼續測試。單元測試期間在Ada中的異常處理
I.E. (這是非常例子而不是編譯代碼)
procedure Test_Function is
begin
from -20 to 20
Result := SQRT(i);
if Result = (Expected) then
print "Passed";
end_if;
exception:
print "FAILED";
end Test_Function
我首先想到的是,如果我有一個「更深層次的功能」,這實際上做的通話和異常是通過一個返回。
I.E. (這是非常例子而不是編譯代碼)
procedure Test_Function is
begin
from -20 to 20
Result := my_SQRT(i);
if Result = (Expected) then
print "Passed";
end_if;
exception:
print "FAILED";
end Test_Function
function my_SQRT(integer) return Integer is
begin
return SQRT(i);
exception:
return -1;
end my_SQRT;
在理論上我希望會的工作,我只是不願意要保持寫子功能時,我的test_function,預計將進行實際測試。
是否有一種方法在觸發異常IN Test_Function後繼續執行,而不必編寫包裝函數並通過該函數調用? 或 有沒有更容易/更好的方式來處理這種情況?
*對不起,代碼不好的例子,但我認爲這個想法應該清楚,如果不是,我會重新編寫代碼。
這幾乎是要求的。一般來說,我仍然更喜歡使用子例程,但上面是「本地化異常處理程序」的Ada-ese。 –
我會試一試並回來,我認爲(顯然不正確),異常是需要在調用函數(過程)的末尾。 – onaclov2000