// 播放地址解析钩子单测:测试流注入的三分支行为 import 'package:flutter_test/flutter_test.dart'; import 'package:video_app/core/config/test_stream.dart'; import 'package:video_app/models/video_item.dart'; VideoItem _item(String url) => VideoItem(videoId: 1, author: VideoAuthor(userId: 1), videoUrl: url); void main() { group('resolvePlayUrl', () { const testUrl = 'https://test.cdn/sample.m3u8'; test('原始地址为 http 绝对地址时不替换', () { final item = _item('https://cdn.example.com/hls/1/index.m3u8'); expect(resolvePlayUrl(item, testUrl: testUrl), 'https://cdn.example.com/hls/1/index.m3u8'); }); test('原始地址不可用且注入测试流时替换为测试流', () { expect(resolvePlayUrl(_item('/hls/1/index.m3u8'), testUrl: testUrl), testUrl); expect(resolvePlayUrl(_item(''), testUrl: testUrl), testUrl); }); test('原始地址不可用且未注入测试流时原样返回', () { expect(resolvePlayUrl(_item('/hls/1/index.m3u8'), testUrl: ''), '/hls/1/index.m3u8'); expect(resolvePlayUrl(_item(''), testUrl: ''), ''); }); }); }