序文
私たちがJavaを学んでいたとき、教師や一般的な本は、8つの基本的なタイプのJavaがあると書いています。彼らは:バイト、int、short、long、float、double、char、booleanです。しかし、今朝、Java聖書「Thinking in Java」を読んでいたとき、著者はデータ型を説明するときにそれを排除することがわかりました。これには9種類があります。私はBaiduについて読んだが、いくつかの本も9つの基本的なタイプのJavaを書いていることを発見した。
Javaサービスレイヤーには、Save*やUpdate*など、多くのVoIDタイプのメソッドがあります。これらのメソッドは更新されているだけで、返品値はありません。単一のテストは、メソッドの返品値に基づいて記述することはできないため、特別な方法のみを使用できます。
この方法の環境: Mockito、testng
テストされた方法:
Java
@Override public void updateruleName(long ruleid、string newrulename、long ucid){assert.notnull(roolid、 "ルールIDはnull be null"); assert.notnull(newrulename、「ルール名はnullになることはできません」); assert.notnull(ucid、「オペレーターのucidはnullになることはできません」);文字列cleannewrulename = stringutils.trim(newrulename); if(stringutils.isblank(cleannewrulename)){show new IllegalArgumentException( "新しいルール名は空にすることはできません"); } //ルールオブジェクトルールルール= queryrulebyid(roolid); if(null == rule){新しいIllegaldataexception( "no ruleが見つかりません"); } rule.setruleid(roolid); Rule.setRulename(cleannewrulename); RULE.SETUPDATEUCID(UCID); RULE.SETUPDATETIME(new Date()); Ruledao.updateselective(rule); }テスト方法:
void returnメソッドでJavaをテストします
@test public void testupdaterulename(){long ruleid = 1l;文字列newrulename = "newrulename"; long ucid = 123l;リスト<rule>ルール= new ArrayList <rule>();ルールルール= new Rule(); RULE.SESTRULESTATUS((BYTE)DBVALUESETTING.RULE_STATUS_TAKE_EFFECT); rules.add(ルール); //ルールオブジェクトマップ<string、object> params = new hashmap <string、object>(); params.put( "roolid"、roolid); Mockito.When(Ruledao.QueryRulesByCondition(PARAMS))。 mockito.doanswer(new Answer <object>(){public object Answer(rivocationOnmockInvocation){// BreakPoint 2:Rule Rule =(Rule)Invocation.GetArguments(0]; Assert.asserttrue(rule.getrulename()。 })。when(ruledao).updateselective(mockito.any(rule.class)); //ブレークポイント1:ここで実行するfirst ruleservice.updaterulename(roolid、newrulename、ucid); }コメントに示すように、2つのブレークポイントが追加された場合、実行プロセス中に最後のコールラインが最初に実行されます。エンドポイント1の実行中、エンドポイント2のスタブが実行されます。この時点で、メソッド実行エントリパラメーターはBreakpoint 2で取得でき、着信パラメーターを実行して目的を達成するために実行できます。
新しい回答はインターフェイスで、メソッド呼び出しのプロキシ実行ポータルを設定するために使用されるメソッドが1つしかありません。
Doanswer実装Java
パブリックインターフェイスAnswer <t> { /*** @paramの呼び出しモックの呼び出し。 * * @return返品される値コードが「 ruleDao.updateSelective(rule); 」に実行されると、模擬オブジェクトに呼び出されるインターセプターがトリガーされます。インターセプターでは、動的プロキシが作成されます。動的プロキシの呼び出しは、新しい答えでカバーされている方法です。
インターセプトとプロキシ、MOCKオブジェクトメソッドの着信パラメーターと発信パラメーターの設定と取得の2つの方法を使用します。このようにして、voidメソッド内の実行クラス呼び出しを確認できます。
要約します
上記は、この記事のコンテンツ全体です。この記事の内容があなたの研究や仕事に役立つことを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。