2016-09-05 7 views
1

私は、それらを処理した後にレコードの配列の配列を返す関数を持っています。 Autogenerate Valueは何を動的に生成することができphpunit anything matcher in array

[ 
    [....] 
    ['Name', 'Quantity', 'Tags', 'Price', 'Total', 'Autogenerated Value'] 
    [....] 
    [....] 
] 

フィールド - 期待戻り値は次のようになります。

現在、assertEqualsメソッドを使用しようとしていますが、自動生成値が異なるたびに発生します。これは私がここで使うことができるanything()のようなものですか?

私は本当にこれがまだできていないですが、配列の中に制約を評価するためにはPHPUnitを拡張することができ、期待値の上に自分のアサーション機能の反復を書いて、assertArraySubset

答えて

0

を使用して主張したくない:

  • は比較例を追加し、この

    class ConstraintComparator extends SebastianBergmann\Comparator 
    { 
        public function accepts($expected, $actual) 
        { 
         return $expected instanceof \PHPUnit_Framework_Constraint; 
        } 
        public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = false, $ignoreCase = false) 
        { 
         $expected->evaluate($actual); 
        } 
    
  • のようなカスタムComparator実装を書きます

    SebastianBergmann\Comparator\Factory::getInstance()->register(new ConstraintComparator); 
    

今PHPUnitのは、彼らが発生する場所にそれらを比較するのではなく、制約を評価する必要がありますを使用して、ブートストラップ・ファイル内のインフレータ。

0

は、私は本当に期待値の上に自分のアサーション機能の反復を書いてみません

assertArraySubset

しかしを使用して主張したくないですか?

ログにアサーションをたくさん入れたくない場合は、何か問題が起きた場合に備えてアサーションメソッドをPHPUnit_Framework_ExpectationFailedExceptionに制限することができます(つまり、配列の定数部分がない場合や、期待値ではない)を正確な問題要素の内容と置き換えたものである。