(작업 노트) jmockit의 사용 - mock 사유 변수, 정적 변수, 코드 블록
3915 단어 작업 노트
카탈로그
1. jmockit 설정
변량
1.43
의지하다
org.jmockit
jmockit
${jmockit.version}
test
구성(버전 1.42 이상은 필수)
maven-surefire-plugin
2.21.0
-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
2. 실례
2.1 피측 대상
package com.test.service;
/**
* @author lu
* @date 2018/12/13
*/
public class JMockitoSupportService {
private String privateData="privateData";
private String constuctData;
private static String staticData;
{
constuctData="constuctData";
}
static{
staticData="staticData";
}
public boolean sayHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public static boolean sayStaticHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public final boolean sayFinalHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public String getPrivateData() {
return privateData;
}
public String getConstuctData() {
return constuctData;
}
public static String getStaticData() {
return staticData;
}
}
2.2 테스트 클래스
import com.test.service.JMockitoSupportService;
import mockit.*;
import mockit.internal.reflection.FieldReflection;
import org.junit.Before;
import org.junit.Test;
public class JMockitNewTest {
// mock
@Injectable
String privateData="private Mock Data";
// mock
@Injectable
String constuctData="constuct Mock Data";
@Injectable
public static String staticData="static Mock Data";
//
@Tested
JMockitoSupportService jMockitoSupportService;
public static class JMockitNewMockTest extends MockUp{
//mock
@Mock
void $init(Invocation invocation) {
JMockitoSupportService jMockitoSupportService=invocation.getInvokedInstance();
//1.44 1.45
Deencapsulation.setField(jMockitoSupportService,"staticData",staticData);
}
//mock
@Mock
void $clinit(Invocation invocation){
}
}
@Before
public void setUp() {
new JMockitNewMockTest();
//1.45
// FieldReflection.setFieldValue(JMockitoSupportService.class.getDeclaredField("staticData")
// ,jMockitoSupportService,staticData);
}
@Test
public void testJMockit(){
System.out.println(jMockitoSupportService.getConstuctData());
System.out.println(jMockitoSupportService.getPrivateData());
System.out.println(jMockitoSupportService.getStaticData());
System.out.println(JMockitoSupportService.getStaticData());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
list 사용 시 메모리 넘침
오늘은 매우 긴 문제를 해결했다.
하나의 집합을 반복하고 추출 값은 하나의 실체류에 귀속된다.
얻고 싶은 메시지는 다음과 같다.
selectBlock에 관련 테이블 정보가 있으면 join Infos가 있고 아래로 돌...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
1.43
org.jmockit
jmockit
${jmockit.version}
test
maven-surefire-plugin
2.21.0
-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar
2.1 피측 대상
package com.test.service;
/**
* @author lu
* @date 2018/12/13
*/
public class JMockitoSupportService {
private String privateData="privateData";
private String constuctData;
private static String staticData;
{
constuctData="constuctData";
}
static{
staticData="staticData";
}
public boolean sayHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public static boolean sayStaticHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public final boolean sayFinalHello(String output){
System.out.println(output);
if(output.equals("true")){
return true;
}else{
return false;
}
}
public String getPrivateData() {
return privateData;
}
public String getConstuctData() {
return constuctData;
}
public static String getStaticData() {
return staticData;
}
}
2.2 테스트 클래스
import com.test.service.JMockitoSupportService;
import mockit.*;
import mockit.internal.reflection.FieldReflection;
import org.junit.Before;
import org.junit.Test;
public class JMockitNewTest {
// mock
@Injectable
String privateData="private Mock Data";
// mock
@Injectable
String constuctData="constuct Mock Data";
@Injectable
public static String staticData="static Mock Data";
//
@Tested
JMockitoSupportService jMockitoSupportService;
public static class JMockitNewMockTest extends MockUp{
//mock
@Mock
void $init(Invocation invocation) {
JMockitoSupportService jMockitoSupportService=invocation.getInvokedInstance();
//1.44 1.45
Deencapsulation.setField(jMockitoSupportService,"staticData",staticData);
}
//mock
@Mock
void $clinit(Invocation invocation){
}
}
@Before
public void setUp() {
new JMockitNewMockTest();
//1.45
// FieldReflection.setFieldValue(JMockitoSupportService.class.getDeclaredField("staticData")
// ,jMockitoSupportService,staticData);
}
@Test
public void testJMockit(){
System.out.println(jMockitoSupportService.getConstuctData());
System.out.println(jMockitoSupportService.getPrivateData());
System.out.println(jMockitoSupportService.getStaticData());
System.out.println(JMockitoSupportService.getStaticData());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
list 사용 시 메모리 넘침오늘은 매우 긴 문제를 해결했다. 하나의 집합을 반복하고 추출 값은 하나의 실체류에 귀속된다. 얻고 싶은 메시지는 다음과 같다. selectBlock에 관련 테이블 정보가 있으면 join Infos가 있고 아래로 돌...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.