亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何測試抽象類?

如何測試抽象類?

PHP
守候你守候我 2021-06-10 10:53:53
我對如何開始測試抽象類的方式感到困惑。我應該測試每種方法嗎?我應該測試什么?我不應該測試抽象類嗎?一個例子:abstract class Command{    private $params;    public function with(array $params = [])    {        $this->params = $params;    }    public function getParams()    {        return $this->params;    }    abstract public function run();}我應該像這樣測試它:/** @test */public function is_an_abstract_class(){    $command = $this->getReflectionClass();    $this->assertTrue($command->isAbstract());}/** @test */public function has_an_run_method(){    $command = $this->getReflectionClass();    $method = $this->getReflectionMethod('run');    $this->assertTrue($command->hasMethod('run'));    $this->assertTrue($method->isAbstract());    $this->assertTrue($method->isPublic());    $this->assertEquals(0, $method->getNumberOfParameters());}
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

我不應該測試抽象類嗎?

在大多數情況下,這將是我的選擇。

原因#1:某些類從抽象類繼承的事實是實現細節,而不是行為。我們不想將我們的測試與實現細節結合起來。

原因#2:我希望抽象類中的代碼被覆蓋其后代的測試覆蓋。

如果您的設計是新興的“測試優先”,那么您已經涵蓋了此代碼,因為抽象類將是您將通過重構已經在測試中的類引入到您的設計中的東西。


查看完整回答
反對 回復 2021-06-19
  • 1 回答
  • 0 關注
  • 339 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號