質問
があるので、モックオブジェクトの建設を利用JMock Java?
例えば、い方法など:
public Object createObject(String objectType) {
if(objectType.equals("Integer") {
return new Integer();
} else if (objectType.equals("String") {
return new String();
}
}
...があるので、模擬の期待のオブジェクト建設の試験方法は?
持ってき方など、さすがだなと私ができるとの期待があるコンストラクタが呼ばれることというよりもむしろ追加のコードのチェックの種類(しんは常に肥大化し、簡単に私の例)。
な:
assertTrue(a.createObject() instanceof Integer);
からの期待の一部のコンストラクタが呼び出されます。だけでビットクリーナー、エクスプレスいわれているのは、読みやすくするために。
ください言い訳の簡単な例では、実際の問題のようにはもう少し複雑で、期待を簡素化します。
のための少の背景
私は簡単なファクトリメソッドを作成する、ラッパーオブジェクト。のオブジェクトの入力についても包みを必要とするなどのパラメータを入手しにくいテストクラスでは、既存のコードでは難しく構築します。
も近いので実際に見るためには:があるので、模擬全クラスを使用CGLib)を一挙なしを指定するあらゆる方法をスタブ。
その模擬れに包まれたコンストラクタで明らかにできる手法に対して呼び出されるので、JMockできる動的に嘲笑うそれぞれ方法は?
私の推測ではないというのは、僕の複雑です。もっ吠えるのは間違いツリーは貴重なもの:-)
解決
しかし、面白いことを考えることができるのは、作成方法でファクトリオブジェクト、およ模擬.
しかし嘲笑うコンストラクタを呼,no.模擬物を前提としての存在のオブジェクトは、コンストラクタを前提にオブジェクトお使いになれません。少なくともジャワ島の配分および初期化が起こる。
他のヒント
jmockitは可能です。
Alasしようとして有罪を求められたり、間違った質問です。
単純な工場のではないんで試験を見たようなもの:
public Wrapper wrapObject(Object toWrap) {
if(toWrap instanceof ClassA) {
return new Wrapper((ClassA) toWrap);
} else if (toWrap instanceof ClassB) {
return new Wrapper((ClassB) toWrap);
} // etc
else {
return null;
}
}
私たいのかにされている場合は、見つけ"新ClassAWrapper()"と呼ばれたのでオブジェクトtoWrapした入手しにくい孤立した。のラッパーがすることができると呼ばれる)のような作用のクラスを包むの異なる物は、用途の異なるコンストラクタは[1]です。思いった質問が少し改善されるような適切なっていたと思い迅速に回答:
"すべ模擬オブジェクトtoWrapに合わせたインスタンスだ試験の異なる試験方法及び検査結果のラッパーオブジェクトの型が返される...とんかつろげる色調の落ち着ける雰囲気ないモックの世界を、異なるインスタンス;-)"
いえ解決の問題です。
[1]を開けるとかこれを整理するものの範囲は現在の問題:-)
お馴染みの 依存性射出?
まceartanlyきく寄与するものと考えていを知ることです。しないといけないのではないかの古き良 インバージョン管理の容器の依存関係の噴射パターン マーティンFowlerといいます。
に依存噴射(DI)についDIコンテナオブジェクトでは作ることができすべての種類のクラスです。その際、オブジェクトを利用できるようにしたもののDIコンテナinstanciateの授業としてしまうと模擬のDIコンテナ試験のクラスを作成しインスタンスの予定。
依存関係に注射または反転制御を実現します。
また、利用の概要工場デザインパターンのためのすべてのオブジェクトを作成します.ときユニットテストモード注入し、試験工場にお伝えすあけましておめでとうございま作り、その主張コードの試験工場にチェックの結果(反転の制御)。
このコードとしてクリーンで作成、内部を保護インタフェース実装のインターフェイス(工場)を生産しており、この内部クラスです。追加の静的変数の型のインターフェースに初期化されたデフォルトの工場とする。追加の静セッターの工場で行われます。
でのテストコードと同じパッケージには、その内部インタフェースが必要)、匿名の内部クラスの主張コードおよび試験のコードです。そして、初期化対象のクラスに割り当て(注)の試験工場、法の対象クラスです。
いものとします。疑似ている模擬面しのコンストラクタ...だけます。
るようで救急にアプローチを試験す。他の理由に必要なものとなる明示的なコンストラクタと呼ばれる?
主張の型が返されるオブジェクトのようでも大丈夫試験工場になります。処createObjectとしてブラックボック..それを返しまでくださmicromanageどのようなのです。なる)
更新の更新 痛!絶望的な対策の必死回eh?今、それは驚くべJMockです---しかしこの作品のインタフェースの..いないコンクリートタイプ。なので
- のいずれかう精神を浸透させるにはけっ呼び出さを入力オブジェクトinstantiable下の試験をハーネスGo底を最大限に引き出し、"なりたい。
- がることは困難、手動で試験でブレークポイント(この記事の評価欄へ吸い込み).貼付け"をタッチしますがご自身のリスク"のコメントは目に見えるゾーンのソースファイルの移動。戦います。