`

DJunitの使い方

 
阅读更多

1.1.  値を確認する場合

テスト実行後に、Beanに設定されている値等が想定どおりか確認するために使用します。

assertEquals(比較1, 比較2);

 

比較1:比較対照1(オブジェクト、文字列、プリミティブ何でも指定可能)

比較2:比較1と値が同じであると想定される値(何でも指定可能)

Ex). assertEquals(bean.getInquiryTermParam(), "1")

                      ↑このBeanの戻りが、1になっているかをチェック

 

 

1.2.   例外の発生を確認する場合

テスト実行時に、例外が発生することが想定されている場合、想定どおりの例外が発生したかを確認するために使用します。

assertException(発生した例外のインスタンス, 想定される例外クラス名);

 

発生した例外のインスタンス(Throwable):該当メソッドのtry catchによりキャッチされた例外

想定される例外クラス名(String):発生が想定される例外のクラス名

 

Ex).

try{

        target.doPost();

     }catch(Throwable e){

        // 例外のチェック

        assertException(e, "mbk.exception.McFatalException");

     }

 

 

 

1.3.   メソッドの戻り値を想定値に変更する

単体テストの実施であるため、他クラスの機能を確認する必要はありません。

そのため、他クラスが作成中であっても想定値で他クラスのメソッド戻りを取得したい場合は、以下のように設定してください。

ただし、複数回実行されるメソッドの場合下記設定だと一回のみが想定値となってしまいますので、「複数回実行されるメソッドを常に一定の返却値にする」を参照してください。

 

addReturnValue(対象クラス名, メソッド名, 返却値)

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

返却値(Object):規定する戻り値(プリミティブ型の場合は、ラッパークラスのオブジェクトを設定してください。)――ただし、nullを設定することはできません。Nullを返却したい場合は、以下を利用してください。

addReturnNull(対象クラス名, メソッド名)

 

 

1.4.メソッドの無効化

2.3の機能を利用し、voidメソッドの処理を無効化することも可能です。これは、戻り値を設定しなければ、無効化します。

addReturnValue(対象クラス名, メソッド名)

 

 

1.5.例外を発生させる

同様に、該当メソッドでの例外を発生させることも可能です。これは、戻り値オブジェクトに例外を記述していれば、該当メソッドを呼び出す場合に例外がThrowされます。

addReturnValue(対象クラス名, メソッド名, new 例外クラス)

 

Ex) addReturnValue("java.util.Properties", "load", new IOException())

                                           ↑発生させたい例外を定義する

 

 

 

1.6.複数実行するメソッドの戻りを回数指定で変更する

複数回実行されるメソッドの戻りを、回数指定で変更することも可能です。

setReturnValueAt(対象クラス名, メソッド名, インデックス, 返却値)

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

インデックスint):何回目にメソッドが呼ばれたときの設定かの回数指定(0スタート)

返却値(Object):規定する戻り値

 

ex) setReturnValueAt("mbk.util.McDexLogging", "println", 2, new Exception())

println3回目にコールされた場合に、例外が発生します。

 

戻り値にNullを指定したい場合は、以下のように設定してください。

setReturnNullAt(対象クラス名, メソッド名, インデックス, 返却値)

 

 

1.7.複数実行するメソッドの戻りを常に一定の返却値にする

複数回実行されるメソッドの戻りを常に一定の想定値にする場合は、以下のように設定してください。

setReturnValueAtAllTimes(対象クラス名, メソッド名, 返却値)

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

返却値(Object):規定する戻り値

 

戻り値にNullを指定したい場合は、以下のように設定してください。

setReturnNullAtAllTimes(対象クラス名, メソッド名, 返却値)

 

 

1.8.クラスのイニシャライザを無効化する

クラスのイニシャライザを無効化したい場合は、以下のように設定してください。

addReturnValue(対象クラス名,  "<clinit>")

                            ↑メソッド名に、この固定値を利用すると

                      イニシャライザが無効化します。

 

 

1.9.コンストラクタを差し替える

コンストラクタを差し替えるというよりは、コンストラクタの返却値を指定すれば期待する動きを設定することができます。

addReturnValue(対象クラス名,  "<init>", クラスのインスタンス生成)

 

対象クラス名String):コンストラクタを指定したいクラス名(フルパス)

クラスのインスタンス生成Object):該当クラスのインスタンスを指定

 

メソッド名欄が「<init>」となることで該当処理が行えます。

 

Ex)addReturnValue("java.io.FileWriter", "<init>", new FileWrite("./test.csv")

上記指定により、FileWriterが生成される場合は規定したFileWriterが作成されます。ただし、このメソッドは一回目のみ有効となるので複数回生成されるクラスのコンストラクタを常に規定したい場合は、以下のように設定してください。

setReturnAtAllTimes(対象クラス名,  "<init>", クラスのインスタンス生成)

 

 

1.10.インナークラスのメソッドの戻りを設定する

インナークラスのメソッドの戻りを想定値とする場合は、対象クラス名を以下のように設定してください。

クラス名 + '$' + インナークラス名

 

ex) addReturnValue("jp.co.dgic.AClass$InnerClass", "method", "value");

 

 

1.11.メソッドが呼ばれていること/呼ばれていないことを確認する

メソッドが呼ばれていることを、テストクラスから確認するには以下のように設定してください。

assertCalled (対象クラス名メソッド名)

 

逆に、メソッドが呼ばれていないことを確認するには以下のように設定してください。

assertNotCalled (対象クラス名メソッド名)

 

また、何回呼ばれているかを確認するために以下のように設定することも可能です。

int count = getCallCount(対象クラス名メソッド名);

assertEquals(10, count);

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

 

 

1.12.メソッドの引数を確認する

メソッドの引数に正しい値が渡っているのかを確認するには以下のように設定してください。これは複数回よばれた場合は、一回目のメソッドの引数を確認します。

getArgument (対象クラス名メソッド名, インデックス )

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

インデックスint):メソッドの引数が並んでいる順(0からスタート)

 

ex)getMessage(String type, int msg)というメソッドの引数を確認する場合は、getArgument("jp.co.Sample", "getMessage", 0)と指定すると、String typeに渡された引数を確認できます。インデックスに2を指定すると int msgに渡された引数を確認できます。

複数回実行されるメソッドの引数を確認するには、以下のように設定してください。

getArgument (対象クラス名メソッド名, インデックス1、 インデックス2 )

 

対象クラス名String):戻り値を規定したいクラス名(フルパス指定)

メソッド名String):戻り値を規定するメソッド名

インデックス1int):実行回数(0からスタート)

インデックス2int):メソッドの引数が並んでいる順(0からスタート)

 

 

 

分享到:
评论

相关推荐

    eclipse用djunit插件包

    3. 配置:安装完成后,可能需要重启Eclipse以使插件生效。在Eclipse的首选项设置中,可以配置DJUnit的相关选项,如测试运行器等。 4. 使用:现在可以在Eclipse中创建和运行DJUnit测试用例。DJUnit提供了与JUnit相似...

    djUnit0.8.4 for Eclipse 3.2

    djUnitは、「テストされたコード」と「テストされていないコード」をレポート表示します。このレポートを参考にテスト不足を解消させることで、テストの品質が向上し、プログラムの品質が向上します。

    djunit0.8.3

    djunit0.8.3djunit0.8.3djunit0.8.3

    Djunit安装包

    2. **重启Eclipse**:完成解压后,需要重启Eclipse以使新安装的插件生效。这样,Djunit的菜单项和功能将在Eclipse界面中出现。 3. **导入依赖库**:为了使用Djunit,你需要确保你的项目中已经正确导入了Djunit和...

    Djunit0.8.2

    《Djunit 0.8.2:Eclipse 插件测试框架的探索与实践》 Djunit,全称为"Djunit包",是一款专为Eclipse集成开发环境设计的单元测试框架,其版本号为0.8.2。这款工具的核心功能是帮助Java开发者在Eclipse环境下对JDT...

    Eelipse插件-Djunit

    通过虚拟化,我们可以创建预期的行为模式,使测试更加可控和可预测。 3. **代码覆盖率支持** Djunit集成了代码覆盖率工具,可以帮助开发者了解测试覆盖了多少源代码。代码覆盖率是一个重要的指标,它度量了测试...

    djUnit的Eclipse插件及需要的jar包[.7z]

    总之,djUnit 的Eclipse插件和相关的jar包是Django开发者进行单元测试的强大工具,它提供了一种无缝的集成体验,使测试工作更加高效和精确。通过理解 djUnit 的特性和Eclipse插件的工作原理,开发者能够更好地利用...

    djunit_plugin_for_eclipse_4.7-4.18:Eclipse 4.7版的djUnit plusin-4.18(2020-12)

    djunit_plugin_for_eclipse_4.7-4.18 Eclipse版本4.7的djUnit插件-4.18(2020-12) 当前版本0.9.0 蚀版本 代码名称 4.7 氧 4.8 光子 4.9 2018-09 4.10 2018-12 4.11 2019-03 4.12 2019-06 4.13 2019-...

    日志测试包

    hibernate二级缓存EHCache所需jar包

    Java CheckStyle

    同时,CheckStyle也支持排除某些文件或目录,以防止对第三方库或特定的测试代码进行不必要的检查。 总结来说,Java CheckStyle是提升Java项目代码质量的有力工具,通过检查代码规范,它可以帮助开发者遵循一致的...

    CruiseControl及ant配置

    3. **结果通知**:构建完成后,会将构建结果通知给相关方,比如通过邮件或者网页展示。 #### 二、Config.xml配置详解 `config.xml`是CruiseControl的核心配置文件,它定义了CruiseControl如何执行构建任务,主要...

Global site tag (gtag.js) - Google Analytics