머리말
우리가 Java를 배우고있을 때 교사 나 일반 도서는 8 가지 기본 유형의 Java가 있다고 썼습니다. 바이트, int, short, long, float, double, char, boolean입니다. 그러나 오늘 아침 자바 성경 "Java in Java"를 읽었을 때, 나는 저자가 데이터 유형을 설명 할 때 무효가된다는 것을 알았습니다. 이것에는 9 가지가 있습니다. 나는 바이두에서 읽은 후 일부 책은 9 가지 기본 유형의 자바를 씁니다.
Java 서비스 계층에는 Save* 및 Update*와 같은 많은 빈 공간 유형 방법이 있습니다. 이 방법은 방금 업데이트되었으며 반환 값이 없습니다. 단일 테스트는 메소드의 반환 값을 기반으로 작성할 수 없으므로 특수 메소드 만 사용할 수 있습니다.
이 방법의 환경 : Mockito, testng
테스트 된 방법 :
자바
@override public void updateruleName (long ruleid, string newruleName, long ucid) {assert.notnull (ruleID, "규칙 ID가 null이 될 수 없다"); Assert.notnull (Newrulename, "규칙 이름은 null이 될 수 없다"); assert.notnull (UCID, "연산자의 uCID는 무일하게 될 수 없다"); String CleanNewrulename = StringUtils.trim (NewRulename); if (stringUtils.isblank (cleannewruleName)) {새로운 불법 불법 행위 ( "새 규칙 이름이 비어질 수 없다"); } // 규칙 객체 규칙 규칙 = QueryRuleByID (ruleID); if (null == Rule) {새로운 ElegalDataException을 던지십시오 ( "규칙이 발견 없음"); } rule.setRuleID (ruleID); Rule.SetRuleName (CleanNewruleName); rule.setupdateucid (UCID); Rule.SetUpdateTime (새 날짜 ()); ruledao.updateselective (규칙); }테스트 방법 :
void return 방법으로 Java를 테스트하십시오
@test public void testupdaterulename () {long ruleid = 1l; 문자열 newrulename = "newrulename"; 긴 UCID = 123L; List <Rule> 규칙 = New ArrayList <Rule> (); 규칙 규칙 = 새 규칙 (); Rule.SetRulestatus ((바이트) dbValuesetting.rule_status_take_effect); 규칙 (규칙); // query quer abers 객체 맵 <string, object> params = new Hashmap <String, object> (); params.put ( "ruleid", ruleid); mockito.when (ruledao.queryrulesbycondition (params)). mockito.doanswer (새 답변 <bood> () {public Object Answer (invocationOnMock envocation) {// breakpoint 2 : 규칙 규칙 = (규칙) lenocation.getArguments () [0]; assert.assertTrue (rule.getRulename (). equals ( "newrulename"); return null;} }). // BreakPoint 1 : 여기에서 실행합니다. 첫 번째 규칙 서비스 .upDaterulEname (RuleID, NewRulename, UCID); }주석에 표시된 것처럼 두 개의 중단 점이 추가되면 실행 프로세스 중에 마지막 호출 라인이 먼저 실행됩니다. 엔드 포인트 1의 실행 중에 엔드 포인트 2의 스터브가 실행됩니다. 이때, 메소드 실행 입력 매개 변수는 Breakpoint 2에서 얻을 수 있으며, 들어오는 매개 변수는 목적을 달성하기 위해 주장 인증을 수행 할 수 있습니다.
새로운 답변은 하나의 메소드 만있는 인터페이스로 메소드 호출을 위해 프록시 실행 포털을 설정하는 데 사용됩니다.
Doanswer 구현 Java
공개 인터페이스 답변 <t> { /*** @param 모의 호출을 호출합니다. * * @반환 할 가치 * * @Throws 던져 넣을 수있는 던지기 가능 */ t 답변 (invocationOnmock vociation) 던지기 가능;}} 코드가 " ruleDao.updateSelective(rule); "로 실행되면 Mock Object를 요구하는 인터셉터가 트리거됩니다. 인터셉터에서는 동적 프록시가 생성됩니다. 동적 프록시의 호출은 새로운 답변으로 다루는 방법입니다.
두 가지 방법을 사용하여 가로 채기와 프록시를 사용하면 모의 객체 방법의 들어오는 및 나가는 매개 변수의 설정 및 획득이 실현됩니다. 이런 식으로, 공극 메소드 내의 실행 클래스 호출을 확인할 수 있습니다.
요약
위는이 기사의 전체 내용입니다. 이 기사의 내용이 귀하의 연구 나 업무에 도움이되기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다.