私はこのボードで同様の質問をしましたが、私の質問には答えられません。これは奇妙なことですが、あなたが嘲笑しているオブジェクトに対してコンストラクタ呼び出しを模擬することは可能です。EasyMock:Javaでコンストラクタ呼び出しをモックする
例:
class RealGuy {
....
public void someMethod(Customer customer) {
Customer customer = new Customer(145);
}
}
class MyUnitTest() {
public Customer customerMock = createMock(Customer.class)
public void test1() {
//i can inject the mock object, but it's still calling the constuctor
realGuyobj.someMethod(customerMock);
//the constructor call for constructor makes database connections, and such.
}
}
私はコンストラクタの呼び出しを期待できますか? newInstanceを使用するようにCustomerコンストラクタ呼び出しを変更できますが、それが役立つかどうかはわかりません。私はnew Customer(145)
コンストラクタの本体が何をしているかを制御できません。
これは可能ですか?
コンストラクタでデータベース接続を行わないことをお勧めします。それらを使用してクラスに接続を注入します。 –
合意。しかし、私は顧客のコンストラクタロジックを制御できません。 – Setzer