我有一個PHPUnit測試testFoo()
與dataProvider fooProvider()
。在testFoo()
的開頭,我使用Runkit重新定義了一個方法,以便在該方法返回重新定義它返回的內容時測試預期結果。但是,重新定義該方法需要一點時間,所以我希望這個測試只發生一次。PHPUnit setUp使用dataProvider運行一個單獨的測試
是否PHPUnit框架提供的功能,以指定的代碼,我想以前testFoo()
跑了一次,並且沒有一次通過fooProvider()
或曾經在浴室返回每次測試(如setUp()
)的每個元素運行?
怎麼樣[@BeforeClass(https://phpunit.de/manual/current/en/appendixes.annotations.html#appendixes.annotations.beforeClass)? – xmike
@xmike我需要多次重新定義所述方法以針對不同的測試返回不同的東西,所以它確實需要針對單個測試 – thanksd
而不是我將留在你的'@ before'之前,而是讓我自己的提供者在測試中進行測試像'$ dataSets = $ this-> getDataSets()'(應該返回數據的數組),然後用循環內的斷言循環它。這樣,測試將僅由PHPUnit框架啓動一次,所以'setUp()'也將只運行一次(從它的角度來看,測試將只運行一次)。 – xmike