相关疑难解决方法(0)

测试Java套接字

我正在开发一个网络应用程序,我希望得到正确的单元测试.这个时候我们会这样做,你知道吗?:)

不过,我在测试网络连接时遇到了麻烦.

在我的应用程序中,我使用plain java.net.Sockets.

例如:

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;

public class Message {
    byte[] payload;

    public Message(byte[] payload) {
        this.payload = payload;
    }

    public boolean sendTo(String hostname, int port) {
        boolean sent = false;

        try {
            Socket socket = new Socket(hostname, port);

            OutputStream out = socket.getOutputStream();

            out.write(payload);

            socket.close();

            sent = true;
        } catch (UnknownHostException e) {
        } catch (IOException e) {
        }

        return sent;
    }
}
Run Code Online (Sandbox Code Playgroud)

我读到了关于嘲笑但不确定如何应用它.

java sockets unit-testing mocking

30
推荐指数
2
解决办法
5万
查看次数

osgi:使用ServiceFactories?

我目前正在尝试获得一个包含Service Factory运行的简单包.

这是我的工厂类:

public class SvcFactory implements ServiceFactory<ServiceB> {

    @Override
    public ServiceB getService(Bundle bundle,
            ServiceRegistration<ServiceB> registration) {

        return new ServiceBImpl();
    }

    @Override
    public void ungetService(Bundle bundle, ServiceRegistration<ServiceB> registration,
            ServiceB service) {

    }

}
Run Code Online (Sandbox Code Playgroud)

这是我应该由工厂创建的服务:

public class ServiceBImpl implements ServiceB {

    private ServiceA svcA;

    public void setA(ServiceA a) {
        svcA = a;
    }

}
Run Code Online (Sandbox Code Playgroud)

最后是OSGI-INF/component.xml

<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="bundleb.internal.SvcFactory">

   <implementation class="bundleb.internal.SvcFactory"/>

  <reference bind="setA" cardinality="1..1" interface="bundlea.ServiceA" name="ServiceA" policy="static"/>

   <service servicefactory="true">
      <provide interface="bundleb.ServiceB"/>
   </service>
</scr:component>
Run Code Online (Sandbox Code Playgroud)

如果我在equinox中运行我的测试包(A,B和C),我收到以下错误:

org.osgi.framework.ServiceException: org.eclipse.equinox.internal.ds.FactoryReg.getService() returned a service object that is …
Run Code Online (Sandbox Code Playgroud)

java osgi service-factory

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×2

mocking ×1

osgi ×1

service-factory ×1

sockets ×1

unit-testing ×1