4

我尝试使用soapUI API 创建一个soap UI WSDL 模拟服务。但是似乎没有源代码的文档。

以前有没有人这样做过或朝那个方向做过什么?

4

1 回答 1

3

好的,我现在可以回答自己了...... :)

我为此任务创建了一个单元测试:

    private static WsdlProjectFactory wsdlProjectFactory;
private static WsdlInterfaceFactory wsdlInterfaceFactory;

@BeforeClass
public static void createFactories(){
    wsdlProjectFactory = new WsdlProjectFactory();
    wsdlInterfaceFactory = new WsdlInterfaceFactory();
}


@Before
public void deleteCreatedFiles() {
    new File("global-groovy.log").delete();
    new File("soapui-errors.log").delete();
    new File("soapui.log").delete();
    new File("test.xml").delete();
}

private WsdlProject project;

@Before
public void createProject() throws XmlException, IOException, SoapUIException {
    project = wsdlProjectFactory.createNew();
}

@Test @Ignore
public void testWSDLInterfaceImporting() throws SoapUIException {
    int interfaceCount = project.getInterfaceCount();
    assertThat("newly created project has no interfaces", interfaceCount, is(equalTo(0)));

    WsdlInterface[] importWsdl = wsdlInterfaceFactory.importWsdl(project, "wsdls/SimpleUseCasesellerbtainitialbtexampleMasterClient.wsdl", false);

    interfaceCount = project.getInterfaceCount();
    assertThat("newly created project has 1 interface", interfaceCount, is(equalTo(1)));
}

@Test
public void testMockCreation() throws XmlException, IOException, SoapUIException {
    int mockCount = project.getMockServiceCount();
    assertThat("newly created project has no mocks", mockCount, is(equalTo(0)));

    WsdlInterface[] importWsdl = wsdlInterfaceFactory.importWsdl(project, "wsdls/SimpleUseCasesellerbtainitialbtexampleMasterClient.wsdl", false);

    WsdlMockService service = project.addNewMockService("newMockService");
    service.addNewMockOperation(importWsdl[0].getOperationAt(0));

    project.saveAs("test.xml");

    mockCount = project.getMockServiceCount();
    assertThat("project has exactly one mock", mockCount, is(1));
}
于 2010-08-26T12:53:06.917 回答