lundi 27 juin 2016

What order are phpunit tests executed?

I am trying to test a class that has other classes passed to it (dependency injection), which are stored as class properties. (A settings class, for example that is the result of a Factory).

So, in psuedo code, this is what I am dealing with:

//Get settings for this user.
$settings = SettingsFactory::GetSettings();

//Create widget that uses settings
$widget = new Widget($settings);

Now, obviously, if we refactor code and break SettingsFactory::Getsettings(), the constructor for Widget will fail. But, not necessarily because anything is wrong with Widget.

So, I want to test these components IN ORDER, skipping "later" tests when "early" tests fail.

Consider my current structure for tests:

tests\vendor\Settings\SettingsTest.php
tests\vendor\Widget\WidgetTest.php

PHPUnit needs to test SettingsTest.php (and have everything pass) before running WidgetTest.php will be meaningful.

I think I need to use @depends, but that seems to be limited to a single class scope.

This question seems to hold a piece of the puzzle, but I am not sure how to implement.

How do I write (structure) these tests?

Aucun commentaire:

Enregistrer un commentaire