-1
我想爲下面顯示的這個錯誤post子例程創建一個單元測試。此方法接受錯誤名稱並打印出每個錯誤中的值。這是我的代碼:如何在Perl中創建單元測試?
use constant {
# link included as a variable in this example
ERROR_AED => {
errorCode => 561,
message => {"this is an error. "},
tt => { template => 'disabled'},
link => 'www.error-fix.com',
},
};
sub error_post {
my($error) = @_;
printf ($error->{ message });
}
error_post(ERROR_AED);
這是我的方法,我敢肯定這是錯的,我試圖驗證輸入值,或者更一般地驗證它是被傳遞到error_post方法的錯誤。
#verifying input values
sub test_error_post {
ok(defined $error, 'Should have an input value'); # check that it's a constant
ok($error->isa(constant) , 'Error should be of type constant');
ok($error->errorCode), 'Should contain key errorCode');
ok($error->message), 'Should contain key message');
ok($error->tt), 'Should contain key tt');
ok($error->wiki_page) 'Should contain key wiki page');
}
我知道這可能還有很長的路要走。
你在最後四行有雜散括號。編輯它,至少你有一些編譯的東西。 – mob
「使用常量{...}'後,您還遺失了分號,而您忘記了www.error-fix.com'上的引號。請不要發明你實際沒有使用的代碼,並直接在問題框中輸入;創建一個[mcve]並將其逐字複製粘貼。 (順便提一下,這只是一般性的建議;我可以看到你問的是正確的方法,而不是關於編譯錯誤。) – ThisSuitIsBlackNot
另外,在測試中配置事物的方式,你試圖調用方法一個'$ error'對象,而不是檢查散列鍵的值。你甚至試圖運行這個代碼? – stevieb