Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

SimpleTest conversion: Difference between revisions

From MoodleDocs
Line 19: Line 19:
! Notes
! Notes
|-
|-
| <code php>$this->assertEqual($expected, $actual)</code>
| <code>$this->assertEqual($expected, $actual)</code>
| <code php>$this->assertEquals($expected, $actual)</code>
| <code>$this->assertEquals($expected, $actual)</code>
|
|
|-
|-
| <code php>$this->assertNotEqual($expected, $actual)</code>
| <code>$this->assertNotEqual($expected, $actual)</code>
| <code php>$this->assertNotEquals($expected, $actual)</code>
| <code>$this->assertNotEquals($expected, $actual)</code>
|
|
|-
|-
| <code php>$this->assertWithinMargin($expected, $actual, $margin)</code>
| <code>$this->assertWithinMargin($expected, $actual, $margin)</code>
| <code php>$this->assertEquals($expected, $actual, '', $margin)</code>
| <code>$this->assertEquals($expected, $actual, '', $margin)</code>
|
|
|-
|-
| <code php>$this->assertIdentical($expected, $actual)</code>
| <code>$this->assertIdentical($expected, $actual)</code>
| <code php>$this->assertSame($expected, $actual)</code>
| <code>$this->assertSame($expected, $actual)</code>
|
|
|-
|-
| <code php>$this->assertNotIdentical($expected, $actual)</code>
| <code>$this->assertNotIdentical($expected, $actual)</code>
| <code php>$this->assertNotSame($expected, $actual)</code>
| <code>$this->assertNotSame($expected, $actual)</code>
|
|
|-
|-
| <code php>$this->assertTrue($actual)</code>
| <code>$this->assertTrue($actual)</code>
| <code php>$this->assertTrue((bool)$a, $b)</code>
| <code>$this->assertTrue((bool)$a, $b)</code>
| SimpleTest converts parameter to bool
| SimpleTest converts parameter to bool
|-
|-
| <code php>$this->assertFalse($actual)</code>
| <code>$this->assertFalse($actual)</code>
| <code php>$this->assertFalse((bool)$a, $b)</code>
| <code>$this->assertFalse((bool)$a, $b)</code>
| SimpleTest converts parameter to bool
| SimpleTest converts parameter to bool
|-
|-
| <code php>$this->assertIsA($actual, $classname)</code>
| <code>$this->assertIsA($actual, $classname)</code>
| <code php>$this->assertInstanceOf($classname, $actual)</code>
| <code>$this->assertInstanceOf($classname, $actual)</code>
| only objects
| only objects
|-
|-
| <code php>$this->assertIsA($actual, 'array')</code>
| <code>$this->assertIsA($actual, 'array')</code>
| <code php>$this->assertEquals('array', gettype($actual))</code>
| <code>$this->assertEquals('array', gettype($actual))</code>
| arrays only
| arrays only
|-
|-
| <code php>$this->assertPattern($pattern, $string)</code>
| <code>$this->assertPattern($pattern, $string)</code>
| <code php>$this->assertRegExp($pattern, $string)</code>
| <code>$this->assertRegExp($pattern, $string)</code>
|
|
|-
|-
| <code php>$this->assertNoPattern($pattern, $string)</code>
| <code>$this->assertNoPattern($pattern, $string)</code>
| <code php>$this->assertNotRegExp($pattern, $string)</code>
| <code>$this->assertNotRegExp($pattern, $string)</code>
|
|
|-
|-
| <code php>$this->expectException(true)</code>
| <code>$this->expectException(true)</code>
| <code php>$this->setExpectedException('exception_classname')</code>
| <code>$this->setExpectedException('exception_classname')</code>
| alternatively use phpdocs: @expectedException exception_classname
| alternatively use phpdocs: @expectedException exception_classname
|-
|-
| <code php>$this->expectError()</code>
| <code>$this->expectError()</code>
| <code php>$this->setExpectedException('PHPUnit_Framework_Error')</code>
| <code>$this->setExpectedException('PHPUnit_Framework_Error')</code>
| alternatively use phpdocs: @expectedException PHPUnit_Framework_Error
| alternatively use phpdocs: @expectedException PHPUnit_Framework_Error
|-
|-
| various HTML expectations
| various HTML expectations
| <code php>$this->assertTag()</code>
| <code>$this->assertTag()</code>
|
|
|}
|}

Revision as of 20:09, 20 April 2012

Overview

The migration is pretty straightforward:

  1. create new test file in `xxx/tests/yyy_test.php`
  2. copy contents of the old test file
  3. replace extends UnitTestCase with extends basic_testcase and extends UnitTestCaseUsingDatabase with extends advanced_testcase
  4. move constructor code to setUp
  5. fix setUp(), tearDown()
  6. fix assert syntax
  7. add $this->resetAfterTest() in advanced test cases that modify database
  8. add missing global $CFG for includes outside of testcase classes

Assert differences

SimpleTest PHPUnit Notes
$this->assertEqual($expected, $actual) $this->assertEquals($expected, $actual)
$this->assertNotEqual($expected, $actual) $this->assertNotEquals($expected, $actual)
$this->assertWithinMargin($expected, $actual, $margin) $this->assertEquals($expected, $actual, , $margin)
$this->assertIdentical($expected, $actual) $this->assertSame($expected, $actual)
$this->assertNotIdentical($expected, $actual) $this->assertNotSame($expected, $actual)
$this->assertTrue($actual) $this->assertTrue((bool)$a, $b) SimpleTest converts parameter to bool
$this->assertFalse($actual) $this->assertFalse((bool)$a, $b) SimpleTest converts parameter to bool
$this->assertIsA($actual, $classname) $this->assertInstanceOf($classname, $actual) only objects
$this->assertIsA($actual, 'array') $this->assertEquals('array', gettype($actual)) arrays only
$this->assertPattern($pattern, $string) $this->assertRegExp($pattern, $string)
$this->assertNoPattern($pattern, $string) $this->assertNotRegExp($pattern, $string)
$this->expectException(true) $this->setExpectedException('exception_classname') alternatively use phpdocs: @expectedException exception_classname
$this->expectError() $this->setExpectedException('PHPUnit_Framework_Error') alternatively use phpdocs: @expectedException PHPUnit_Framework_Error
various HTML expectations $this->assertTag()

SimpleTest emulation