コード嗅覚91 -テストなしで断言する
私たちはXUnitの大ファンです.しかし、我々はプログラマにあまり関心がありません.
問題 読みやすさ ハードデバッグ 時間廃棄物
解決策 良い記述的な主張をする 問題解決のための共有ガイド
サンプルコード
間違い
右
検出
assertとassertdescriptionは異なった機能であるので、我々は後者を支持するために我々の方針を調節することができます.
タグ テスト臭気
結論
あなたの主張の読者に敬意を表しなさい.
それは、あなた自身さえかもしれません!
詳しい情報 XUnit: Assert Description Deprecation
クレジット
写真でStartaê Team on Unsplash
ジョン・ウッズ
この記事はCodesmellシリーズの一部です.
TL;DR: Use asserts with declarative descriptions.
問題
解決策
サンプルコード
間違い
<?
public function testNoNewStarsAppeared(): void
{
$expectedStars = $this->historicStarsOnFrame();
$observedStars = $this->starsFromObservation();
//These sentences get a very large collection
$this->assertEquals($expectedStars, $observedStars);
//If something fails we will have a very hard debugging time
}
右
<?
public function testNoNewStarsAppeared(): void
{
$expectedStars = $this->historicStarsOnFrame();
$observedStars = $this->starsFromObservation();
//These sentences get a very large collection
$newStars = array_diff($expectedStars, $observedStars);
$this->assertEquals($expectedStars, $observedStars ,
'There are new stars ' . print_r($newStars,true));
//Now we can see EXACTLY why the assertion failed with a clear and
//Declarative Message
}
検出
assertとassertdescriptionは異なった機能であるので、我々は後者を支持するために我々の方針を調節することができます.
タグ
結論
あなたの主張の読者に敬意を表しなさい.
それは、あなた自身さえかもしれません!
詳しい情報
クレジット
写真でStartaê Team on Unsplash
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
ジョン・ウッズ
Software Engineering Great Quotes
Maxi Contieri ・ Dec 28 '20 ・ 13 min read
#codenewbie
#programming
#quotes
#software
この記事はCodesmellシリーズの一部です.
How to Find the Stinky parts of your Code
Maxi Contieri ・ May 21 '21 ・ 4 min read
#codenewbie
#tutorial
#codequality
#beginners
Reference
この問題について(コード嗅覚91 -テストなしで断言する), 我々は、より多くの情報をここで見つけました https://dev.to/mcsee/code-smell-91-test-asserts-without-description-4im4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol