Behaviour: I can confirm despite the great new Spring'13 feature to daisy chain Batch jobs this restriction still applies in a Test context. While the documentation is good for describing best practices around testing Batch Apex. This limitation is a little buried in a code sample show in the topic, but does indeed read as follows.
// Create 200 test accounts - this simulates one execute.
// Important - the Salesforce.com test framework only allows you to
test one execute.
Suggested Approach to Testing: What you have to consider is using the Test.isRunningTest to bypass the code starting the second job in this context. Meaning that you will have to test your second batch job in a separate test to get coverage and assert behaviour. In doing so you will obvsiouly have to reproduce manually in the test code the state in the database the second job expects. Not ideal, but should work.
The following is an example of the change to avoid the second batch job being executed during test execution.
public void finish(Database.BatchableContext)
{
if(!Test.isRunningTest)
Database.executeBatch(new MySecondBatchJob));
}
Hope this helps!
P.S. thanks for the blog reference TechTrekker! ;-)