私はいくつかのテスト駆動開発の実践を試し始めており、コードのこのビットをテストするかどうか、もしそうならどのようにテストするかを決めるのに問題があります。
AbstractServer
とを含むクラスがServerSocketFactory
ありますServerSocket
:
public abstract class AbstractServer extends Thread {
...SNIP...
//ServerSocket and factory.
private ServerSocket ss;
private ServerSocketFactory ssf;
public AbstractServer ( int _port ) {
this.port = _port;
try {
ssf = ServerSocketFactory.getDefault();
ss = ssf.createServerSocket(port);
} catch (IOException e) {
// Couldn't create ServerSocket, die.
System.exit(1);
}
}
... SNIP ...
とは両方ともでありServerSocket
、このクラスの外部に公開されることはありません。ServerSocketFactory
private
私の質問:
実際にとを作成するかどうかを確認するためのテストを作成する必要が
ServerSocket
ありServerSocketFactory
ますか?それらはprivate
クラス内から公開されておらず、公開されていません-どのくらいのテストが多すぎるテストですか?それらの作成をテストすることが私がすべきことである場合、クラスの外部からプライベートな非公開(ゲッターメソッドなし)オブジェクトの作成をテストするにはどうすればよいですか?私の素朴な(読んで:テストされていない)仮定は、私がテストクラスを作成するということ
extending
AbstractServer
です; 次に、テストしているものを作成する必要があります。これは、最初にprotected
それらを作成する目的を半ば無効にprivate
します。