10

スタンドアロンのjunitテストでApache Qpidを使用した例はありますか?

理想的には、テスト内でメッセージを送受信できるキューをオンザフライで作成できるようにしたいと考えています。そのため、テスト内で QPid をテストしていません。そのために統合テストを使用しますが、サービスの負荷をモックアウトする必要があるメッセージを処理するメソッドをテストするのに非常に役立ちます。

4

4 に答える 4

4

Qpid プロジェクトには、組み込みブローカーをテストに使用する多数のテストがあります。基本ケースを使用してスタートアップのシャットダウンを処理しますが、以下を実行して、テスト内にブローカーを簡単に統合できます。

public void setUp()
{
        int port=1;

// Config is actually a Configuaration File App Registry object, or Configuration Application Registry.

        ApplicationRegistry.initialise(config, port);

        TransportConnection.createVMBroker(port);        
}

public void test()
{...}

public void tearDown()
{
            TransportConnection.killVMBroker(port);
            ApplicationRegistry.remove(port);
}

次に、接続のために、ブローカーの conactionURL を指定する必要があります。すなわち、borkerlist='vm://1'

于 2010-05-21T00:26:38.847 に答える
1

私が理解できた最高のものは:

PropertiesConfiguration properties = new PropertiesConfiguration();
properties.addProperty("virtualhosts.virtualhost.name", "test");
properties.addProperty("security.principal-databases.principal-database.name", "testPasswordFile");
properties.addProperty("security.principal-databases.principal-database.class", "org.apache.qpid.server.security.auth.database.PropertiesPrincipalDatabase");
ServerConfiguration config = new ServerConfiguration(properties);
ApplicationRegistry.initialise(new ApplicationRegistry(config) {
    @Override
    protected void createDatabaseManager(ServerConfiguration configuration) throws Exception {
        Properties users = new Properties();
        users.put("guest","guest");
        users.put("admin","admin");
        _databaseManager = new PropertiesPrincipalDatabaseManager("testPasswordFile", users);
    }
});
TransportConnection.createVMBroker(ApplicationRegistry.DEFAULT_INSTANCE);

次のURLを使用:

amqp://admin:admin@/test?brokerlist='vm://:1?sasl_mechs='PLAIN''

大きな問題は、構成と承認にあります。走行距離は異なる場合があります。

于 2011-11-02T04:52:50.020 に答える