Java Junit用于依赖于其他应用程序的函数
我需要为使用maven开发的应用程序(用java编写)实现Junit。我的应用程序中的一些功能依赖于其他应用程序,当我们在SDN控制器中与其他应用程序一起启动时,它会获得该应用程序的服务,并在我的应用程序中使用它连接到db等。如何测试依赖于其他应用程序并连接到db的函数?如果需要从其他服务(甚至在同一个库中)调用方法,可以模拟这些调用,并在单元测试本身中确定响应是什么,因此单元测试只关注该单元 您可以使用不同的模拟库,例如Mockito或unitils.easyMock:Java Junit用于依赖于其他应用程序的函数,java,maven,junit,Java,Maven,Junit,我需要为使用maven开发的应用程序(用java编写)实现Junit。我的应用程序中的一些功能依赖于其他应用程序,当我们在SDN控制器中与其他应用程序一起启动时,它会获得该应用程序的服务,并在我的应用程序中使用它连接到db等。如何测试依赖于其他应用程序并连接到db的函数?如果需要从其他服务(甚至在同一个库中)调用方法,可以模拟这些调用,并在单元测试本身中确定响应是什么,因此单元测试只关注该单元 您可以使用不同的模拟库,例如Mockito或unitils.easyMock: @RunWith(St
@RunWith(StveJunit4TestClassRunner.class)
public class MyServiceTest {
@TestedObject
private MyService service;
@Mock
@InjectIntiByType
private ExternalService external;
// this for all services used in your service
@Test
public void testMethod(){
Person result = new Person("Jack", "American");
EasyMock.expect(external.findPerson("Jack")).andReturn(result);
EasyMockUnitils.replay();
// this tells you, your tested service is going to call the external service
// and passes "Jack" as param, with result as returned value
String country = service.getPersonCountry("Jack"); // assume this returns the country
// of the person returned by the external service
assertEquals(result.getCountry(), country);
}
}
这只是一个例子,还有很多方法可以做到这一点
编辑:这里有一个链接,你可以通过模仿来查看calls@Stultuske把这当作一个答案(加上一个例子:))你怎么模仿这个电话?我尝试在我的应用程序中为这些应用程序添加依赖项。我在教程的答案中添加了一个链接