Переглянути джерело

Add the first unit test

Add phpunit configuration to run tests and add the first running test to validate the configuration
Alexis Degrugillier 11 роки тому
батько
коміт
b17cdadf15
3 змінених файлів з 52 додано та 0 видалено
  1. 32 0
      tests/app/Models/CategoryTest.php
  2. 7 0
      tests/bootstrap.php
  3. 13 0
      tests/phpunit.xml

+ 32 - 0
tests/app/Models/CategoryTest.php

@@ -0,0 +1,32 @@
+<?php
+
+class FreshRSS_CategoryTest extends \PHPUnit_Framework_TestCase {
+
+	public function test__construct_whenNoParameters_createsObjectWithDefaultValues() {
+		$category = new FreshRSS_Category();
+		$this->assertEquals(0, $category->id());
+		$this->assertEquals('', $category->name());
+	}
+
+	/**
+	 * @param string $input
+	 * @param string $expected
+	 * @dataProvider provideValidNames
+	 */
+	public function test_name_whenValidValue_storesModifiedValue($input, $expected) {
+		$category = new FreshRSS_Category($input);
+		$this->assertEquals($expected, $category->name());
+	}
+
+	public function provideValidNames() {
+		return array(
+		    array('', ''),
+		    array('this string does not need trimming', 'this string does not need trimming'),
+		    array('  this string needs trimming on left', 'this string needs trimming on left'),
+		    array('this string needs trimming on right  ', 'this string needs trimming on right'),
+		    array('  this string needs trimming on both ends  ', 'this string needs trimming on both ends'),
+		    array(str_repeat('This string needs to be shortened because its length is way too long. ', 4), str_repeat('This string needs to be shortened because its length is way too long. ', 3) . 'This string needs to be shortened because its'),
+		);
+	}
+
+}

+ 7 - 0
tests/bootstrap.php

@@ -0,0 +1,7 @@
+<?php
+
+error_reporting(E_ALL);
+ini_set('display_errors', 1);
+
+require('../constants.php');
+require(LIB_PATH . '/lib_rss.php');	//Includes class autoloader

+ 13 - 0
tests/phpunit.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="bootstrap.php">
+	<filter>
+		<whitelist>
+			<directory suffix=".php">../app</directory>
+		</whitelist>
+	</filter>
+	<testsuites>
+		<testsuite name="FreshRSS">
+			<directory>app</directory>
+		</testsuite>
+	</testsuites>
+</phpunit>