序文
執筆の目的:
レジン サービスを開始せずに一部の第 2 レベルのコンテンツをテストおよび検証できるようにするには、単体テストやその他の機能をできるだけ使用して、IDEA でバックエンド コードのテストを実装します。これにより、レジンを再起動する必要がなくなります。サービスに対する不必要な時間の無駄を繰り返します。
1. 前提条件
-
gitee のプロジェクトをローカル IDEA にプルします。
-
gitee アドレス: https://gitee.com/llhtrunk/ecology_dycs/tree/master
-
必要なecology/classbean、WEB-INF/libクラスライブラリを設定します。
-
システム内で参照されるクラスライブラリやシステムクラスは、開発や通常のコンパイルにおいて正常に参照できることが保証されています。
2. 設定ファイルを変更する
2.1. データベース接続構成の変更
修改为实际要连接的ecology数据库
2.2. log4jを変更する
将log4j中的log日志文件路径修改为绝对路径的具体位置
3. junit 依存関係を追加する
4. テストクラス
クエリデータベース操作が効果的かどうかをテストします。
package com.weavernorth;
import org.junit.Before;
import org.junit.Test;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.general.GCONST;
import weaver.hrm.User;
import java.net.InetAddress;
import java.net.UnknownHostException;
/**
* @Classname Test
* @Description TODO
* @Version 1.0.0
* @Date 2022/7/21 0021 16:45
* @Created by llh
*/
public class TestAction {
@Before
//1、设置好根路径
public void before() throws Exception {
GCONST.setServerName("ecology");
GCONST.setRootPath("D:\\mywork\\Ecology9单元测试\\ecology\\");
String hostname = "Unknown";
try {
InetAddress addr = InetAddress.getLocalHost();
hostname = addr.getHostName();
} catch (UnknownHostException ex) {
System.out.println("Hostname can not be resolved");
}
}
@Test
//2、执行测试
public void test() {
BaseBean baseBean = new BaseBean();
RecordSet rs = new RecordSet();
//执行数据库查询
rs.executeQuery("select * from hrmresource ");
while (rs.next()) {
System.out.println("lastname = " + rs.getString("lastname"));
}
//读取配置文件
String weaver = rs.getPropValue("weaver", "ecology.url");
//打印日志
baseBean.writeLog("weaver", weaver);
//构建用户
User user = new User(1);
//读取用户信息
String loginid = user.getLoginid();
System.out.println("loginid = " + loginid);
}
}
コードを実行した結果:
5. システムのメール設定を使用してメールを送信します
大量メール送信用の送信サービスを設定する
@Test
public void test2() throws Exception {
//收件人,邮箱地址,多地址时用英文逗号分隔
String sendTo = "[email protected]";
//邮件标题
String emailTitle = "这是个标题";
//邮件内容
String emailInfo = "这是邮件内容";
//邮件附件ids
String emailFileIds = "";
EmailWorkRunnable ewr = new EmailWorkRunnable(sendTo, emailTitle, emailInfo);
ewr.setImagefileids(emailFileIds.toString());
//result:true投递成功,false投递失败
boolean emailSendResult = ewr.emailCommonRemind();
System.out.println("emailSendResult = " + emailSendResult);
}
スクリーンショットが正常に送信されました
6. メッセージを送信する
現在、テストは正常に送信できていますが、エコロジーの該当ユーザーに該当メッセージが見られず、原因が分かりません。
@Test
public void testMessages() throws Exception {
// 消息来源
MessageType messageType = MessageType.newInstance(100);
// 接收人id 必填
Set<String> userIdList = new HashSet<>();
userIdList.add("4");
// 标题
String title = "标题";
// 内容
String context = "内容";
// PC端链接
String linkUrl = "https://www.baidu.com";
// 移动端链接
String linkMobileUrl = "https://m.baidu.com";
try {
MessageBean messageBean = Util_Message.createMessage(messageType, userIdList, title, context, linkUrl, linkMobileUrl);
// 创建人id
messageBean.setCreater(1);
// 需要修改消息为已处理等状态时传入,表示消息最初状态为待处理
//message.setBizState("0");
//消息来源code +“|”+业务id需要修改消息为已处理等状态时传入
//messageBean.setTargetId("121|22");
boolean store = Util_Message.store(messageBean);
new BaseBean().writeLog("消息提醒结果=" + store);
} catch (IOException e) {
e.printStackTrace();
}
}