MDL-66903 testing: Helper to load fixture files

This commit is contained in:
Andrew Nicols
2024-07-15 12:22:17 +08:00
parent b8a075bed6
commit dd72df20f2
2 changed files with 35 additions and 0 deletions
+34
View File
@@ -741,4 +741,38 @@ abstract class advanced_testcase extends base_testcase {
\core\task\manager::adhoc_task_complete($task);
}
}
/**
* Convenience method to load a fixture from a component's fixture directory.
*
* @param string $component
* @param string $path
* @throws coding_exception
*/
protected static function load_fixture(
string $component,
string $path,
): void {
$fullpath = sprintf(
"%s/tests/fixtures/%s",
\core_component::get_component_directory($component),
$path,
);
if (!file_exists($fullpath)) {
throw new \coding_exception("Fixture file not found: $fullpath");
}
global $ADMIN;
global $CFG;
global $DB;
global $SITE;
global $USER;
global $OUTPUT;
global $PAGE;
global $SESSION;
global $COURSE;
global $SITE;
require_once($fullpath);
}
}
+1
View File
@@ -6,6 +6,7 @@ information provided here is intended especially for developers.
* The `\core\dataformat::get_format_instance` method is now public, and can be used to retrieve a writer instance for
a given dataformat
* Added the ability for unit tests to autoload classes in the `\[component]\tests\` namespace from the `[path/to/component]/tests/classes` directory.
* Added the `advanced_testcase::load_fixture()` helper to load fixtures from a components `tests/fixtures/` folder.
=== 4.3.4 ===