5

注: JUnit 4.11 と Netty 3.6.5 を使用しています。

複雑なサーバー アプリでいくつかの基本的な機能をテストしようとしています。単純にネットワーク機能を抽出して、いくつかの単体テストを実行したいと考えています。ただし、単体テストを作成しようとすると、アプリケーションが単に終了します。ただし、ダミーを配置すると、public static void main正しく動作しますが、JUnit の外部では明らかに動作します。sscceは次のとおりです。

public class SimpleNetwork {
    private Injector inj;

    @Before
    public void startInjector() {
        Module mod = new AbstractModule() {
            @Override
            protected void configure() {
                // Guice stuff you don't need to see, it works fine
            }
        };
        inj = Guice.createInjector(mod);
    }

    // **When I run this using JUnit, the application ends immediately.**
    @Test
    public void testNetwork() {
        NioServer server = inj.getInstance(NioServer.class);
        server.run();

         // **This prints in both scenarios**
        System.out.println("Hello World");
    }

    // **When I run this, the application works as expected.**
    public static void main(String[] args) {
        SimpleNetwork sn = new SimpleNetwork();

        sn.startInjector();
        sn.testNetwork();
    }
}
4

1 に答える 1