如何从另一个测试中调用测试?

时间:2018-09-15 07:54:52

标签: java maven spring-boot testing jar

如何从另一个测试中调用测试?

我在jar中有一个类,已将其作为依赖项添加到我的项目中:

public class Tests{

private MockMvc mockMvc;


@Test
public void test1() throws Exception {
.....
mockMvc.perform(get(myRequest)
        .content(dataFromDB)
.......
    }
}
@Test
public void test2() throws Exception {
.....
mockMvc.perform(get(myRequest)
        .content(dataFromDB)
.......
    }
}
.......

在我的项目中,我有:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = MyApp.class)
public class MyTests {
private MockMvc mockMvc;

@Autowired
private WebApplicationContext context;

@Before
public void init() throws Exception {
    MockitoAnnotations.initMocks(this);
    mockMvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build();
}

@Test
public void test() throws Exception {
   CALL SOMEHOW TESTS FROM THE JAR HERE
}

我希望罐子中的那些测试可以测试我的项目的数据库(例如: dataFromDB 应该是来自添加了此依赖项的项目的一些数据)。

我已经添加了这个jar,我可以在项目中调用Tests类,因此我可以访问它。我只是不确定如何在其中运行这些测试。

我应该更改什么才能使其正常工作?谢谢

已更新:

*我希望jar中的所有测试都可以同时调用,而不是单独调用。

*我想授予jar访问我的数据库的权限,以便它可以在我项目的db表中获取所有需要的测试数据。

1 个答案:

答案 0 :(得分:1)

从外观上看,您有2套环境和1套测试。

解决这个问题的一种方法是使环境可以通过,包括mockmvc,dataFromDb等,以便测试可以独立于环境执行。

我建议将测试方法放在另一个类中,例如这个非常简化的示例,以便于阅读:

Uri uri = Uri.parse("https://www.instagram.com/_u/eatoutlagos");
Intent likeIng = new Intent(Intent.ACTION_VIEW, uri);

likeIng.setPackage("com.instagram.android");

try {
    startActivity(likeIng);
} catch (ActivityNotFoundException e) {
    startActivity(new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://www.instagram.com/_u/eatoutlagos")));
}