LessFileCompilationTest: Check $file during the test, not in constructor
authorBartosz Dziewoński <matma.rex@gmail.com>
Tue, 22 Jul 2014 14:34:12 +0000 (16:34 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Tue, 22 Jul 2014 14:46:51 +0000 (14:46 +0000)
This will result in a neat little test failure instead of an
unreadable thirty-line traceback when the test fails.

Change-Id: Ie0b564a95586d72eb730ab8a70a6175eb3ae743d

tests/phpunit/LessFileCompilationTest.php

index f67fe02..6ebbcb2 100644 (file)
@@ -23,14 +23,8 @@ class LessFileCompilationTest extends MediaWikiTestCase {
         * @param string $file
         * @param ResourceLoaderModule $module The ResourceLoader module that
         *   contains the file
-        * @throws PHPUnit_Framework_Exception When the file parameter isn't a
-        *   string or readable file
         */
        public function __construct( $file, ResourceLoaderModule $module ) {
-               if ( !is_string( $file ) || !is_file( $file ) || !is_readable( $file ) ) {
-                       throw PHPUnit_Util_InvalidArgumentHelper::factory( 1, 'readable file' );
-               }
-
                parent::__construct( 'testLessFileCompilation' );
 
                $this->file = $file;
@@ -38,6 +32,12 @@ class LessFileCompilationTest extends MediaWikiTestCase {
        }
 
        public function testLessFileCompilation() {
+               $thisString = $this->toString();
+               $this->assertTrue(
+                       is_string( $this->file ) && is_file( $this->file ) && is_readable( $this->file ),
+                       "$thisString must refer to a readable file"
+               );
+
                $compiler = ResourceLoader::getLessCompiler();
                $this->assertNotNull( $compiler->compileFile( $this->file ) );
        }