400 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			400 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| Simple Test interface changes
 | |
| =============================
 | |
| Because the SimpleTest tool set is still evolving it is likely that tests
 | |
| written with earlier versions will fail with the newest ones. The most
 | |
| dramatic changes are in the alpha releases. Here is a list of possible
 | |
| problems and their fixes...
 | |
| 
 | |
| assertText() no longer finds a string inside a <script> tag
 | |
| -----------------------------------------------------------
 | |
| The assertText() method is intended to match only visible,
 | |
| human-readable text on the web page. Therefore, the contents of script
 | |
| tags should not be matched by this assertion. However there was a bug
 | |
| in the text normalisation code of simpletest which meant that <script>
 | |
| tags spanning multiple lines would not have their content stripped
 | |
| out. If you want to check the content of a <script> tag, use
 | |
| assertPattern(), or write a custom expectation.
 | |
| 
 | |
| Overloaded method not working
 | |
| -----------------------------
 | |
| All protected and private methods had underscores
 | |
| removed. This means that any private/protected methods that
 | |
| you overloaded with those names need to be updated.
 | |
| 
 | |
| Fatal error: Call to undefined method Classname::classname()
 | |
| ------------------------------------------------------------
 | |
| SimpleTest renamed all of its constructors from 
 | |
| Classname to __construct; derived classes invoking
 | |
| their parent constructors should replace parent::Classname()
 | |
| with parent::__construct().
 | |
| 
 | |
| Custom CSS in HtmlReporter not being applied
 | |
| --------------------------------------------
 | |
| Batch rename of protected and private methods 
 | |
| means that _getCss() was renamed to getCss().
 | |
| Please rename your method and it should work again.
 | |
| 
 | |
| setReturnReference() throws errors in E_STRICT
 | |
| ----------------------------------------------
 | |
| Happens when an object is passed by reference.
 | |
| This also happens with setReturnReferenceAt().
 | |
| If you want to return objects then replace these
 | |
| with calls to returns() and returnsAt() with the
 | |
| same arguments. This change was forced in the 1.1
 | |
| version for E_STRICT compatibility.
 | |
| 
 | |
| assertReference() throws errors in E_STRICT
 | |
| -------------------------------------------
 | |
| Due to language restrictions you cannot compare
 | |
| both variables and objects in E_STRICT mode. Use
 | |
| assertSame() in this mode with objects. This change
 | |
| was forced the 1.1 version.
 | |
| 
 | |
| Cannot create GroupTest
 | |
| -----------------------
 | |
| The GroupTest has been renamed TestSuite (see below).
 | |
| It was removed completely in 1.1 in favour of this
 | |
| name.
 | |
| 
 | |
| No method getRelativeUrls() or getAbsoluteUrls()
 | |
| ------------------------------------------------
 | |
| These methods were always a bit weird anyway, and
 | |
| the new parsing of the base tag makes them more so.
 | |
| They have been replaced with getUrls() instead. If
 | |
| you want the old functionality then simply chop
 | |
| off the current domain from getUrls().
 | |
| 
 | |
| Method setWildcard() removed in mocks
 | |
| -------------------------------------
 | |
| Even setWildcard() has been removed in 1.0.1beta now.
 | |
| If you want to test explicitely for a '*' string, then
 | |
| simply pass in new IdenticalExpectation('*') instead.
 | |
| 
 | |
| No method _getTest() on mocks
 | |
| -----------------------------
 | |
| This has finally been removed. It was a pretty esoteric
 | |
| flex point anyway. It was there to allow the mocks to
 | |
| work with other test tools, but no one does this.
 | |
| 
 | |
| No method assertError(), assertNoErrors(), swallowErrors()
 | |
| ----------------------------------------------------------
 | |
| These have been deprecated in 1.0.1beta in favour of
 | |
| expectError() and expectException(). assertNoErrors() is
 | |
| redundant if you use expectError() as failures are now reported
 | |
| immediately.
 | |
| 
 | |
| No method TestCase::signal()
 | |
| ----------------------------
 | |
| This has been deprecated in favour of triggering an error or
 | |
| throwing an exception. Deprecated as of 1.0.1beta.
 | |
| 
 | |
| No method TestCase::sendMessage()
 | |
| ---------------------------------
 | |
| This has been deprecated as of 1.0.1beta.
 | |
| 
 | |
| Failure to connect now emits failures
 | |
| -------------------------------------
 | |
| It used to be that you would have to use the
 | |
| getTransferError() call on the web tester to see if
 | |
| there was a socket level error in a fetch. This check
 | |
| is now always carried out by the WebTestCase unless
 | |
| the fetch is prefaced with WebTestCase::ignoreErrors().
 | |
| The ignore directive only lasts for the next fetching
 | |
| action such as get() and click().
 | |
| 
 | |
| No method SimpleTestOptions::ignore()
 | |
| -------------------------------------
 | |
| This is deprecated in version 1.0.1beta and has been moved
 | |
| to SimpleTest::ignore() as that is more readable. In
 | |
| addition, parent classes are also ignored automatically.
 | |
| If you are using PHP5 you can skip this directive simply
 | |
| by marking your test case as abstract.
 | |
| 
 | |
| No method assertCopy()
 | |
| ----------------------
 | |
| This is deprecated in 1.0.1 in favour of assertClone().
 | |
| The assertClone() method is slightly different in that
 | |
| the objects must be identical, but without being a
 | |
| reference. It is thus not a strict inversion of
 | |
| assertReference().
 | |
| 
 | |
| Constructor wildcard override has no effect in mocks
 | |
| ----------------------------------------------------
 | |
| As of 1.0.1beta this is now set with setWildcard() instead
 | |
| of in the constructor.
 | |
| 
 | |
| No methods setStubBaseClass()/getStubBaseClass()
 | |
| ------------------------------------------------
 | |
| As mocks are now used instead of stubs, these methods
 | |
| stopped working and are now removed as of the 1.0.1beta
 | |
| release. The mock objects may be freely used instead.
 | |
| 
 | |
| No method addPartialMockCode()
 | |
| ------------------------------
 | |
| The ability to insert arbitrary partial mock code
 | |
| has been removed. This was a low value feature
 | |
| causing needless complications. It was removed
 | |
| in the 1.0.1beta release.
 | |
| 
 | |
| No method setMockBaseClass()
 | |
| ----------------------------
 | |
| The ability to change the mock base class has been
 | |
| scheduled for removal and is deprecated since the
 | |
| 1.0.1beta version. This was a rarely used feature
 | |
| except as a workaround for PHP5 limitations. As
 | |
| these limitations are being resolved it's hoped
 | |
| that the bundled mocks can be used directly.
 | |
| 
 | |
| No class Stub
 | |
| -------------
 | |
| Server stubs are deprecated from 1.0.1 as the mocks now
 | |
| have exactly the same interface. Just use mock objects
 | |
| instead.
 | |
| 
 | |
| No class SimpleTestOptions
 | |
| --------------------------
 | |
| This was replced by the shorter SimpleTest in 1.0.1beta1
 | |
| and is since deprecated.
 | |
| 
 | |
| No file simple_test.php
 | |
| -----------------------
 | |
| This was renamed test_case.php in 1.0.1beta to more accurately
 | |
| reflect it's purpose. This file should never be directly
 | |
| included in test suites though, as it's part of the
 | |
| underlying mechanics and has a tendency to be refactored.
 | |
| 
 | |
| No class WantedPatternExpectation
 | |
| ---------------------------------
 | |
| This was deprecated in 1.0.1alpha in favour of the simpler
 | |
| name PatternExpectation.
 | |
| 
 | |
| No class NoUnwantedPatternExpectation
 | |
| -------------------------------------
 | |
| This was deprecated in 1.0.1alpha in favour of the simpler
 | |
| name NoPatternExpectation.
 | |
| 
 | |
| No method assertNoUnwantedPattern()
 | |
| -----------------------------------
 | |
| This has been renamed to assertNoPattern() in 1.0.1alpha and
 | |
| the old form is deprecated.
 | |
| 
 | |
| No method assertWantedPattern()
 | |
| -------------------------------
 | |
| This has been renamed to assertPattern() in 1.0.1alpha and
 | |
| the old form is deprecated.
 | |
| 
 | |
| No method assertExpectation()
 | |
| -----------------------------
 | |
| This was renamed as assert() in 1.0.1alpha and the old form
 | |
| has been deprecated.
 | |
| 
 | |
| No class WildcardExpectation
 | |
| ----------------------------
 | |
| This was a mostly internal class for the mock objects. It was
 | |
| renamed AnythingExpectation to bring it closer to JMock and
 | |
| NMock in version 1.0.1alpha.
 | |
| 
 | |
| Missing UnitTestCase::assertErrorPattern()
 | |
| ------------------------------------------
 | |
| This method is deprecated for version 1.0.1 onwards.
 | |
| This method has been subsumed by assertError() that can now
 | |
| take an expectation. Simply pass a PatternExpectation
 | |
| into assertError() to simulate the old behaviour.
 | |
| 
 | |
| No HTML when matching page elements
 | |
| -----------------------------------
 | |
| This behaviour has been switched to using plain text as if it
 | |
| were seen by the user of the browser. This means that HTML tags
 | |
| are suppressed, entities are converted and whitespace is
 | |
| normalised. This should make it easier to match items in forms.
 | |
| Also images are replaced with their "alt" text so that they
 | |
| can be matched as well.
 | |
| 
 | |
| No method SimpleRunner::_getTestCase()
 | |
| --------------------------------------
 | |
| This was made public as getTestCase() in 1.0RC2.
 | |
| 
 | |
| No method restartSession()
 | |
| --------------------------
 | |
| This was renamed to restart() in the WebTestCase, SimpleBrowser
 | |
| and the underlying SimpleUserAgent in 1.0RC2. Because it was
 | |
| undocumented anyway, no attempt was made at backward
 | |
| compatibility.
 | |
| 
 | |
| My custom test case ignored by tally()
 | |
| --------------------------------------
 | |
| The _assertTrue method has had it's signature changed due to a bug
 | |
| in the PHP 5.0.1 release. You must now use getTest() from within
 | |
| that method to get the test case. Mock compatibility with other
 | |
| unit testers is now deprecated as of 1.0.1alpha as PEAR::PHPUnit2
 | |
| should soon have mock support of it's own.
 | |
| 
 | |
| Broken code extending SimpleRunner
 | |
| ----------------------------------
 | |
| This was replaced with SimpleScorer so that I could use the runner
 | |
| name in another class. This happened in RC1 development and there
 | |
| is no easy backward compatibility fix. The solution is simply to
 | |
| extend SimpleScorer instead.
 | |
| 
 | |
| Missing method getBaseCookieValue()
 | |
| -----------------------------------
 | |
| This was renamed getCurrentCookieValue() in RC1.
 | |
| 
 | |
| Missing files from the SimpleTest suite
 | |
| ---------------------------------------
 | |
| Versions of SimpleTest prior to Beta6 required a SIMPLE_TEST constant
 | |
| to point at the SimpleTest folder location before any of the toolset
 | |
| was loaded. This is no longer documented as it is now unnecessary
 | |
| for later versions. If you are using an earlier version you may
 | |
| need this constant. Consult the documentation that was bundled with
 | |
| the release that you are using or upgrade to Beta6 or later.
 | |
| 
 | |
| No method SimpleBrowser::getCurrentUrl()
 | |
| --------------------------------------
 | |
| This is replaced with the more versatile showRequest() for
 | |
| debugging. It only existed in this context for version Beta5.
 | |
| Later versions will have SimpleBrowser::getHistory() for tracking
 | |
| paths through pages. It is renamed as getUrl() since 1.0RC1.
 | |
| 
 | |
| No method Stub::setStubBaseClass()
 | |
| ----------------------------------
 | |
| This method has finally been removed in 1.0RC1. Use
 | |
| SimpleTestOptions::setStubBaseClass() instead.
 | |
| 
 | |
| No class CommandLineReporter
 | |
| ----------------------------
 | |
| This was renamed to TextReporter in Beta3 and the deprecated version
 | |
| was removed in 1.0RC1.
 | |
| 
 | |
| No method requireReturn()
 | |
| -------------------------
 | |
| This was deprecated in Beta3 and is now removed.
 | |
| 
 | |
| No method expectCookie()
 | |
| ------------------------
 | |
| This method was abruptly removed in Beta4 so as to simplify the internals
 | |
| until another mechanism can replace it. As a workaround it is necessary
 | |
| to assert that the cookie has changed by setting it before the page
 | |
| fetch and then assert the desired value.
 | |
| 
 | |
| No method clickSubmitByFormId()
 | |
| -------------------------------
 | |
| This method had an incorrect name as no button was involved. It was
 | |
| renamed to submitByFormId() in Beta4 and the old version deprecated.
 | |
| Now removed.
 | |
| 
 | |
| No method paintStart() or paintEnd()
 | |
| ------------------------------------
 | |
| You should only get this error if you have subclassed the lower level
 | |
| reporting and test runner machinery. These methods have been broken
 | |
| down into events for test methods, events for test cases and events
 | |
| for group tests. The new methods are...
 | |
| 
 | |
| paintStart() --> paintMethodStart(), paintCaseStart(), paintGroupStart()
 | |
| paintEnd() --> paintMethodEnd(), paintCaseEnd(), paintGroupEnd()
 | |
| 
 | |
| This change was made in Beta3, ironically to make it easier to subclass
 | |
| the inner machinery. Simply duplicating the code you had in the previous
 | |
| methods should provide a temporary fix.
 | |
| 
 | |
| No class TestDisplay
 | |
| --------------------
 | |
| This has been folded into SimpleReporter in Beta3 and is now deprecated.
 | |
| It was removed in RC1.
 | |
| 
 | |
| No method WebTestCase::fetch()
 | |
| ------------------------------
 | |
| This was renamed get() in Alpha8. It is removed in Beta3.
 | |
| 
 | |
| No method submit()
 | |
| ------------------
 | |
| This has been renamed clickSubmit() in Beta1. The old method was
 | |
| removed in Beta2.
 | |
| 
 | |
| No method clearHistory()
 | |
| ------------------------
 | |
| This method is deprecated in Beta2 and removed in RC1.
 | |
| 
 | |
| No method getCallCount()
 | |
| ------------------------
 | |
| This method has been deprecated since Beta1 and has now been
 | |
| removed. There are now more ways to set expectations on counts
 | |
| and so this method should be unecessery. Removed in RC1.
 | |
| 
 | |
| Cannot find file *
 | |
| ------------------
 | |
| The following public name changes have occoured...
 | |
| 
 | |
| simple_html_test.php --> reporter.php
 | |
| simple_mock.php --> mock_objects.php
 | |
| simple_unit.php --> unit_tester.php
 | |
| simple_web.php --> web_tester.php
 | |
| 
 | |
| The old names were deprecated in Alpha8 and removed in Beta1.
 | |
| 
 | |
| No method attachObserver()
 | |
| --------------------------
 | |
| Prior to the Alpha8 release the old internal observer pattern was
 | |
| gutted and replaced with a visitor. This is to trade flexibility of
 | |
| test case expansion against the ease of writing user interfaces.
 | |
| 
 | |
| Code such as...
 | |
| 
 | |
| $test = &new MyTestCase();
 | |
| $test->attachObserver(new TestHtmlDisplay());
 | |
| $test->run();
 | |
| 
 | |
| ...should be rewritten as...
 | |
| 
 | |
| $test = &new MyTestCase();
 | |
| $test->run(new HtmlReporter());
 | |
| 
 | |
| If you previously attached multiple observers then the workaround
 | |
| is to run the tests twice, once with each, until they can be combined.
 | |
| For one observer the old method is simulated in Alpha 8, but is
 | |
| removed in Beta1.
 | |
| 
 | |
| No class TestHtmlDisplay
 | |
| ------------------------
 | |
| This class has been renamed to HtmlReporter in Alpha8. It is supported,
 | |
| but deprecated in Beta1 and removed in Beta2. If you have subclassed
 | |
| the display for your own design, then you will have to extend this
 | |
| class (HtmlReporter) instead.
 | |
| 
 | |
| If you have accessed the event queue by overriding the notify() method
 | |
| then I am afraid you are in big trouble :(. The reporter is now
 | |
| carried around the test suite by the runner classes and the methods
 | |
| called directly. In the unlikely event that this is a problem and
 | |
| you don't want to upgrade the test tool then simplest is to write your
 | |
| own runner class and invoke the tests with...
 | |
| 
 | |
| $test->accept(new MyRunner(new MyReporter()));
 | |
| 
 | |
| ...rather than the run method. This should be easier to extend
 | |
| anyway and gives much more control. Even this method is overhauled
 | |
| in Beta3 where the runner class can be set within the test case. Really
 | |
| the best thing to do is to upgrade to this version as whatever you were
 | |
| trying to achieve before should now be very much easier.
 | |
| 
 | |
| Missing set options method
 | |
| --------------------------
 | |
| All test suite options are now in one class called SimpleTestOptions.
 | |
| This means that options are set differently...
 | |
| 
 | |
| GroupTest::ignore() --> SimpleTestOptions::ignore()
 | |
| Mock::setMockBaseClass() --> SimpleTestOptions::setMockBaseClass()
 | |
| 
 | |
| These changed in Alpha8 and the old versions are now removed in RC1.
 | |
| 
 | |
| No method setExpected*()
 | |
| ------------------------
 | |
| The mock expectations changed their names in Alpha4 and the old names
 | |
| ceased to be supported in Alpha8. The changes are...
 | |
| 
 | |
| setExpectedArguments() --> expectArguments()
 | |
| setExpectedArgumentsSequence() --> expectArgumentsAt()
 | |
| setExpectedCallCount() --> expectCallCount()
 | |
| setMaximumCallCount() --> expectMaximumCallCount()
 | |
| 
 | |
| The parameters remained the same.
 |