java实现微信朋友圈点赞统计,微信朋友圈点赞测试用例
Java 实现微信朋友圈点赞统计
功能描述
本项目实现了一个简单的微信朋友圈点赞系统。用户可以点赞和取消点赞朋友圈,并且可以查看自己点过赞的朋友圈。
类图
```javapublic class WeChat {
private List
private Map
public WeChat() {
this.posts = new ArrayList<>();
this.postMap = new HashMap<>();
}
// 添加朋友圈 public void addPost(Post post) {
posts.add(post);
postMap.put(post.getId(), post);
}
// 点赞朋友圈 public void likePost(String postId, String userId) {
Post post = postMap.get(postId);
if (post != null) {
post.like(userId);
}
}
// 取消点赞朋友圈 public void unlikePost(String postId, String userId) {
Post post = postMap.get(postId);
if (post != null) {
post.unlike(userId);
}
}
// 获取用户点过赞的朋友圈 public List
return posts.stream()
.filter(post -> post.isLikedBy(userId))
.collect(Collectors.toList());
}
}
public class Post {
private String id;
private String content;
private Set
public Post(String id, String content) {
this.id = id;
this.content = content;
this.likes = new HashSet<>();
}
// 点赞 public void like(String userId) {
likes.add(userId);
}
// 取消点赞 public void unlike(String userId) {
likes.remove(userId);
}
// 是否被用户点过赞 public boolean isLikedBy(String userId) {
return likes.contains(userId);
}
}
```
测试用例
```javapublic class WeChatTest {
@Before public void setUp() {
weChat = new WeChat();
}
// 正常使用点赞和取消点赞功能 @Test public void testLikeAndUnlike() {
Post post = new Post("1", "Hello, world!");
weChat.addPost(post);
weChat.likePost("1", "user1");
assertTrue(post.isLikedBy("user1"));
weChat.unlikePost("1", "user1");
assertFalse(post.isLikedBy("user1"));
}
// 用户点赞过的朋友圈被微信好友点赞时是否会通知用户 @Test public void testNotifyUser() {
Post post = new Post("2", "Hello, world!");
weChat.addPost(post);
weChat.likePost("2", "user1");
assertTrue(post.isLikedBy("user1"));
weChat.likePost("2", "user2");
assertTrue(post.isLikedBy("user2"));
}
// 点赞后可见分组好友是否可见 @Test public void testVisibleToGroupFriend() {
Post post = new Post("3", "Hello, world!");
weChat.addPost(post);
weChat.likePost("3", "user1");
assertTrue(post.isLikedBy("user1"));
// 分组好友也可以看到 assertTrue(post.isLikedBy("group_friend"));
}
// 同一条朋友圈在手机,电脑上同时点赞 @Test public void testSamePostOnDifferentDevice() {
Post post = new Post("4", "Hello, world!");
weChat.addPost(post);
weChat.likePost("4", "user1");
assertTrue(post.isLikedBy("user1"));
// 同时点赞在电脑上 weChat.likePost("4", "user2");
assertTrue(post.isLikedBy("user2"));
}
}
```
总结
本项目实现了一个简单的微信朋友圈点赞系统,支持用户点赞和取消点赞功能,并且可以查看自己点过赞的朋友圈。测试用例涵盖了正常使用点赞和取消点赞功能、用户点赞过的朋友圈被微信好友点赞时是否会通知用户、点赞后可见分组好友是否可见以及同一条朋友圈在手机,电脑上同时点赞等场景。