| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- <?php
- namespace App\Module\AppGame\Tests;
- /**
- * 测试配置类
- *
- * 集中管理所有测试用的环境变量和配置,方便编排测试
- * 现在从环境变量文件加载配置,独立于代码
- */
- class TestConfig
- {
- /**
- * 获取测试用户配置
- */
- public static function getTestUser(): array
- {
- return TestEnvironment::getTestUser();
- }
- /**
- * 获取测试用户ID
- */
- public static function getTestUserId(): int
- {
- return TestEnvironment::get('TEST_USER_ID', 1);
- }
- /**
- * 获取测试用户密码
- */
- public static function getTestUserPassword(): string
- {
- return TestEnvironment::get('TEST_USER_PASSWORD', 'test123456');
- }
- /**
- * 获取除虫测试配置
- */
- public static function getPesticideTestConfig(): array
- {
- $config = TestEnvironment::getPesticideConfig();
- $config['disaster_type'] = 2; // 虫害类型
- $config['expected_success_rate'] = $config['success_rate'];
- return $config;
- }
- /**
- * 获取除草测试配置
- */
- public static function getWeedicideTestConfig(): array
- {
- $config = TestEnvironment::getWeedicideConfig();
- $config['disaster_type'] = 3; // 杂草类型
- $config['expected_success_rate'] = $config['success_rate'];
- return $config;
- }
- /**
- * 获取浇水测试配置
- */
- public static function getWateringTestConfig(): array
- {
- $config = TestEnvironment::getWateringConfig();
- $config['disaster_type'] = 1; // 干旱类型
- $config['expected_success_rate'] = $config['success_rate'];
- return $config;
- }
- /**
- * 获取测试物品配置
- */
- public static function getTestItem(string $type): array
- {
- $items = [
- 'pesticide' => [
- 'item_id' => TestEnvironment::get('TEST_PESTICIDE_ITEM_ID', 101),
- 'name' => TestEnvironment::get('TEST_PESTICIDE_ITEM_NAME', '高效除虫剂'),
- 'numeric_attributes' => [
- 'fram_pesticide_rate' => TestEnvironment::get('TEST_PESTICIDE_SUCCESS_RATE', 80)
- ]
- ],
- 'weedicide' => [
- 'item_id' => TestEnvironment::get('TEST_WEEDICIDE_ITEM_ID', 102),
- 'name' => TestEnvironment::get('TEST_WEEDICIDE_ITEM_NAME', '强力除草剂'),
- 'numeric_attributes' => [
- 'fram_weedicide_rate' => TestEnvironment::get('TEST_WEEDICIDE_SUCCESS_RATE', 75)
- ]
- ],
- 'watering_tool' => [
- 'item_id' => TestEnvironment::get('TEST_WATERING_ITEM_ID', 103),
- 'name' => TestEnvironment::get('TEST_WATERING_ITEM_NAME', '自动洒水器'),
- 'numeric_attributes' => [
- 'fram_drought_rate' => TestEnvironment::get('TEST_WATERING_SUCCESS_RATE', 90)
- ]
- ],
- 'invalid_item' => [
- 'item_id' => TestEnvironment::get('TEST_INVALID_ITEM_ID', 999),
- 'name' => TestEnvironment::get('TEST_INVALID_ITEM_NAME', '无效物品'),
- 'numeric_attributes' => []
- ]
- ];
- return $items[$type] ?? [];
- }
- /**
- * 获取测试土地配置
- */
- public static function getTestLand(string $type): array
- {
- $lands = [
- 'pest_land' => [
- 'land_id' => TestEnvironment::get('TEST_PEST_LAND_ID', 1),
- 'user_id' => TestEnvironment::get('TEST_PEST_LAND_USER_ID', 1),
- 'disaster_type' => TestEnvironment::get('TEST_PEST_LAND_DISASTER_TYPE', 2),
- 'crop_id' => 1,
- 'growth_stage' => 2
- ],
- 'weed_land' => [
- 'land_id' => TestEnvironment::get('TEST_WEED_LAND_ID', 2),
- 'user_id' => TestEnvironment::get('TEST_WEED_LAND_USER_ID', 1),
- 'disaster_type' => TestEnvironment::get('TEST_WEED_LAND_DISASTER_TYPE', 3),
- 'crop_id' => 2,
- 'growth_stage' => 3
- ],
- 'drought_land' => [
- 'land_id' => TestEnvironment::get('TEST_DROUGHT_LAND_ID', 3),
- 'user_id' => TestEnvironment::get('TEST_DROUGHT_LAND_USER_ID', 1),
- 'disaster_type' => TestEnvironment::get('TEST_DROUGHT_LAND_DISASTER_TYPE', 1),
- 'crop_id' => 3,
- 'growth_stage' => 1
- ],
- 'normal_land' => [
- 'land_id' => TestEnvironment::get('TEST_NORMAL_LAND_ID', 4),
- 'user_id' => TestEnvironment::get('TEST_NORMAL_LAND_USER_ID', 1),
- 'disaster_type' => TestEnvironment::get('TEST_NORMAL_LAND_DISASTER_TYPE', 0),
- 'crop_id' => 4,
- 'growth_stage' => 2
- ],
- 'other_user_land' => [
- 'land_id' => TestEnvironment::get('TEST_OTHER_USER_LAND_ID', 5),
- 'user_id' => TestEnvironment::get('TEST_OTHER_USER_LAND_USER_ID', 2),
- 'disaster_type' => TestEnvironment::get('TEST_OTHER_USER_LAND_DISASTER_TYPE', 2),
- 'crop_id' => 5,
- 'growth_stage' => 1
- ]
- ];
- return $lands[$type] ?? [];
- }
- /**
- * 获取测试场景配置
- */
- public static function getTestScenario(string $category, string $scenario): array
- {
- $scenarios = [
- 'success_scenarios' => [
- 'pesticide_success' => [
- 'description' => '除虫成功测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_PEST_LAND_ID', 1),
- 'item_id' => TestEnvironment::get('TEST_PESTICIDE_ITEM_ID', 101),
- 'expected_result' => 'success'
- ],
- 'weedicide_success' => [
- 'description' => '除草成功测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_WEED_LAND_ID', 2),
- 'item_id' => TestEnvironment::get('TEST_WEEDICIDE_ITEM_ID', 102),
- 'expected_result' => 'success'
- ],
- 'watering_success' => [
- 'description' => '浇水成功测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_DROUGHT_LAND_ID', 3),
- 'item_id' => TestEnvironment::get('TEST_WATERING_ITEM_ID', 103),
- 'expected_result' => 'success'
- ]
- ],
- 'failure_scenarios' => [
- 'invalid_item' => [
- 'description' => '使用无效物品测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_PEST_LAND_ID', 1),
- 'item_id' => TestEnvironment::get('TEST_INVALID_ITEM_ID', 999),
- 'expected_error' => '不是除虫物品'
- ],
- 'no_permission' => [
- 'description' => '无权限访问土地测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_OTHER_USER_LAND_ID', 5),
- 'item_id' => TestEnvironment::get('TEST_PESTICIDE_ITEM_ID', 101),
- 'expected_error' => '土地不存在或不属于当前用户'
- ],
- 'no_disaster' => [
- 'description' => '土地无对应灾害测试',
- 'user_id' => TestEnvironment::get('TEST_USER_ID', 1),
- 'land_id' => TestEnvironment::get('TEST_NORMAL_LAND_ID', 4),
- 'item_id' => TestEnvironment::get('TEST_PESTICIDE_ITEM_ID', 101),
- 'expected_error' => '灾害清理失败'
- ]
- ]
- ];
- return $scenarios[$category][$scenario] ?? [];
- }
- }
|