add
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
// CommentTile 渲染与交互 Widget 测试
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
|
||||
import 'package:video_app/models/comment_item.dart';
|
||||
import 'package:video_app/screens/feed/widgets/comment_sheet.dart';
|
||||
|
||||
CommentItem _comment({String nickname = '阿花', String content = '拍得真好'}) =>
|
||||
CommentItem(
|
||||
commentId: 55001,
|
||||
userId: 100030,
|
||||
nickname: nickname,
|
||||
content: content,
|
||||
replyCount: 3,
|
||||
createdAt: '2026-10-14 10:00:00',
|
||||
);
|
||||
|
||||
void main() {
|
||||
testWidgets('渲染昵称/时间/内容,时间紧凑显示', (tester) async {
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: Scaffold(
|
||||
body: CommentTile(
|
||||
comment: _comment(),
|
||||
onReply: () {},
|
||||
onDelete: () {},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
expect(find.text('阿花 · 10-14 10:00'), findsOneWidget);
|
||||
expect(find.text('拍得真好'), findsOneWidget);
|
||||
expect(find.text('回复'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('点击回复触发回调', (tester) async {
|
||||
var replied = false;
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: Scaffold(
|
||||
body: CommentTile(
|
||||
comment: _comment(),
|
||||
onReply: () => replied = true,
|
||||
onDelete: () {},
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
await tester.tap(find.text('回复'));
|
||||
expect(replied, isTrue);
|
||||
});
|
||||
|
||||
testWidgets('canDelete 时长按触发删除回调,不可删时无响应', (tester) async {
|
||||
var deleted = 0;
|
||||
Widget build(bool canDelete) => MaterialApp(
|
||||
home: Scaffold(
|
||||
body: CommentTile(
|
||||
comment: _comment(),
|
||||
canDelete: canDelete,
|
||||
onReply: () {},
|
||||
onDelete: () => deleted++,
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
await tester.pumpWidget(build(true));
|
||||
await tester.longPress(find.text('拍得真好'));
|
||||
expect(deleted, 1);
|
||||
|
||||
await tester.pumpWidget(build(false));
|
||||
await tester.longPress(find.text('拍得真好'));
|
||||
expect(deleted, 1); // 不可删,计数不变
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user