Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从另一个测试调用测试?_Java_Maven_Spring Boot_Testing_Jar - Fatal编程技术网

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

Java 如何从另一个测试调用测试?,java,maven,spring-boot,testing,jar,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 Exc

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

我在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
}
我希望这些来自jar的测试能够测试我的项目的数据库(例如:dataFromDB应该是添加了此依赖项的项目中的一些数据)

我已经添加了这个jar,我可以在我的项目中调用类测试,所以我可以访问它。我只是不知道如何在里面运行这些测试

我应该改变什么才能让它正常工作?谢谢

更新:

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


*我想让jar访问我的db,这样它就可以在我的项目的db表中获得所有需要的测试数据。

从这里可以看到,您有2组环境和1组测试

所以解决这个问题的一个方法是让环境可以通过,mockmvc,dataFromDb等等,这样测试就可以独立于环境执行

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

class MyTestMethods {
  void test1(TestEnv env, Req myRequest) {
    env.getMockMvc()
        .perform(env.get(myRequest)
            .content(env.getDataFromDB());
    // assertions here
  }
}

class OldTestInJar {
  @Test
  public void test1() {
    new MyTestMethods().test1(myEnv, myReq);
  }
}

class MyNewTest {
  @Test
  public void test1() {
    new MyTestMethods().test1(myNewEnv, myNewReq);
  }
}

我不想在我的项目中单独调用jar中的每个测试。我想同时给他们打电话。可能吗?好的,我可以像env一样发送我的WebApplicationContext,对吗?但是我不想单独发送每个请求。我想让jar访问我的数据库,在那里它可以在db表中找到所有请求和所需的数据。例如,在jar中,我希望能够获得如下数据:dataIneed=repo.get(“somethingingeeded”);然后。内容(Datained)…这是一个使用多个环境实现的好例子。如果您使用的是spring之类的东西,那么使用依赖注入将是一个很好的用例。只需注入正确的环境,然后我们只需要使用新环境运行OldTestInJar。NewTestClass不需要运行旧的测试。