It is just my stupid mistake. Wrong mock object creation sequence:
// ...
public function testFoo() {
$fooMock = $this->getMock('Foo', array('foo', 'bar'));
$fooMock->expects($this->once())->method('foo'); // (!) immediately after
$fooMock->expects($this->once())->method('bar'); // mock object instantiation
$fooMock->foobar();
}