Просмотр исходного кода

Add the first unit test

Add phpunit configuration to run tests and add the first running test to validate the configuration
Alexis Degrugillier 11 лет назад
Родитель
Сommit
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>