junit 给test类里面的私有变量赋值
·
junit测试类:
package sqltest.batch;
import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Connection;
import java.util.HashMap;
import sqltest.base.BaseTest;
// テスト対象クラス
//==================================================
import jp.batch.BT000;
public class BT000Test extends BaseTest
{
// デグレード確認用
@Test
public void deleteTest() {
try {
BT000 bT000 = new BT000();
Field fieldA = bT000.getClass().getDeclaredField("C_DATE");
fieldA.setAccessible(true);
fieldA.set(bT000, "6");
Field fieldB = bT000.getClass().getDeclaredField("D_DATE");
fieldB.setAccessible(true);
fieldB.set(bT000, "7");
Method method = bT000.getClass().getDeclaredMethod("deleteData", Connection.class);
method.setAccessible(true);
method.invoke(bT000, conn);
}
catch (Exception e)
{
// テスト失敗
fail();
}
writeEndLog();
}
}
bT000.getClass().getDeclaredField("C_DATE"):给测试类的私有属性【C_DATE】赋值
bT000.getClass().getDeclaredMethod("deleteData", Connection.class):调用测试类的私有【deleteData】方法
package jp.post.batch;
import java.sql.Connection;
public class BT000 extends Batch {
// 日数
private static String C_DATE = "";
// 予定日数
private static String D_DATE = "";
private void deleteData(Connection conn) throws SQLException {
System.out.println("hello World");
}
更多推荐
所有评论(0)