[英]How to share fixtures between tests in PHPUnit
我正在進行WordPress功能測試,因此我閱讀了HTML並使用Mastermind / HTML5來轉換測試。 但是,現在測試速度變慢,因為每次測試加載HTML文檔大約需要1秒。 我想分享測試之間的夾具,所以我不必為每個測試做解析。 但我有一個約束,獲取html的方法是在父類中,這是非靜態方法
https://core.trac.wordpress.org/browser/trunk/tests/phpunit/includes/testcase.php?rev=32953#L328
我有什么選擇來共享測試之間的夾具。
這是我的示例代碼
class Testcase extends WP_UnitTestCase {
public function setUp() {
parent::setUp();
}
public function get_dom( $path ) {
$html = $this->go_to( $path ); // I cannot change this method
// do some html parsing and return DOM
}
}
這是我的樣本測試
class Testcase1 extends Testcase {
public setUp(){
$this->dom = $this->get_dom('/')
}
public test_1() {
}
public test_2() {
}
}
我正在考慮使方法get_dom
靜態,所以它只會被調用一次,但據我所知,靜態方法不能調用非靜態方法。 我對么? 如果是,那么我可以分享測試之間的夾具嗎?
你的意思是緩存數據“dom”? 嘗試這個:
public function setUp() {
static $dom;
if (!isset($dom)) {
$dom = $this->get_dom('/');
}
$this->dom = $dom;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.