我想創建一個測試文件,輸入模板值到一個字符串使用模板工具包,但我不知道什麼檢查/測試包括確保模板工具包正確處理字符串。這裏是我的代碼:試圖創建一個字符串與模板值和單元測試,模板正在處理
#!/usr/bin/env perl
use lib ('./t/lib/');
use strict;
use warnings;
use Template;
use Test::More tests => 1;
# options/configuration for template
my $config = {
#PRE_PROCESS => 1, # means the templates processed can use the same global vars defined earlier
#INTERPOLATE => 1,
#EVAL_PERL => 1,
RELATIVE => 1,
OUTPUT_PATH => './out',
};
my $template = Template->new($config);
# input string
my $text = "This is string number [%num%] .";
# template placeholder variables
my $vars = {
num => "one",
};
# processes imput string and inserts placeholder values
my $create_temp = $template->process(\$text, $vars)
|| die "Template process failed: ", $template->error(), "\n";
#is(($template->process(\$text, $vars)), '1' , 'The template is processing correctly');
# If process method is executed successfully it should have a return value of 1
diag($template->process(\$text, $vars));
的診斷函數返回值爲1,從文件意味着字符串已經被成功地處理過,但我一直在努力檢查stdout是這樣我就可以看到輸出什麼字符串,但我可以打印它。我已經嘗試從終端命令將stdout寫入文件,但文件中沒有顯示任何內容。儘管我可以將stderr寫入文件。 我也一直在嘗試模板的不同配置,如下面的代碼所示。它不工作,因爲我沒有運行任何測試,或者我以錯誤的方式使用模板工具包?
如果還有其他必需的信息需要回答這個問題,請在下面評論。
你正在描述的問題有點過於複雜,我認爲。雖然提供背景很好,但真正的問題會丟失。我想你在問如何檢查Template是否創建了正確的輸出,所以這就是我的回答。基本上你想測試你的模板是否工作? – simbabque
是的。哈哈。抱歉。我試圖詳細說明 –