重构message和添加单元测试