2016-07-06 93 views
1

我有一堆單元測試我的模塊,我發現我複製相同的模擬和設置代碼從一個到另一個。我該如何幹起來並重新使用模擬代碼?如何在Perl單元測試中重用模擬對象?

我已經放在這個簡單的模仿對象旁邊,我的測試:

package MockObject; 
1; 

如果我只是說在測試用例use MockObject;make test找不到MockObject。說得通;畢竟,它沒有安裝在系統範圍內,它不在被測模塊旁邊。

我可以用prove -I lib -I t t/*.t運行我的測試,但我想保留make test,如果只是懶惰地輸入少了幾個字符。

由於模擬對象不是完整的模塊,不應該正式安裝,我不能也不想在Makefile.PL中設置TEST_REQUIRES

向Makefile.PL添加test => { FILES => 't/*.t', INC => 't/' }沒有幫助。

我該如何(簡單地)將MakeMaker生成的Makefile重複使用Perl模擬代碼?

+1

要麼設置PERL5LIB,包括你的T目錄,或者只是'使用lib'你的測試文件中。 – xxfelixxx

回答

1

設置PERL5LIB或在腳本中添加use lib。我發現FindBin package用於設置測試的lib路徑。

use FindBin qw($Bin); 
use lib "$Bin/../lib"; 

其中:

$Bin - path to bin directory from where script was invoked 
+0

我只是使用'use lib't';',我仍然需要複製到非常大的測試用例,但這比複製所有模擬代碼好多了,不會混淆全局設置,並且工作正常。 – Robert

相關問題