当前位置: 首页 > 知识库问答 >
问题:

Spring Data-MongoDB-JUnit测试

林劲
2023-03-14
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = { UserRepository.class, User.class })
public class MyJUnitTest {

UserRepository如下所示:

@Repository
public interface UserRepository extends MongoRepository<User, String> {
    User findByUsername(final String username);
}

我得到以下异常:

无法实例化[...Repository.UserRepository]:指定的类是接口

@ComponentScan("hello")
@EnableMongoRepositories(basePackages = "hello")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = { CustomerRepository.class,     Customer.class })
public class TestClass {

@Autowired
private CustomerRepository repository;

@Test
public void testMethod() {
    System.out.println("repositoryd: " + repository);
    }
}

我的CustomerRepository如下所示(带有@configuration注释):

@Configuration
public interface CustomerRepository extends MongoRepository<Customer, String> {

public Customer findByFirstName(String firstName);

public List<Customer> findByLastName(String lastName);

}

实际上,我不知道为了让测试运行,我需要哪些注释--也许您会有另一个建议,以便我可以解决这个问题。

共有1个答案

苏俊友
2023-03-14

对于Spring Boot1.5.8.发布

您可以使用@springboottest引导所有spring配置。

您的测试将看起来像

@RunWith(SpringRunner.class)
@SpringBootTest
public class SomeRepositoryTests {

    @Autowired
    private SomeRepository someRepository;

    @Test
    public void someTest() {
        someRepository.someMethod(...);
        // assertions
    }
}
<dependency>
  <groupId>de.flapdoodle.embed</groupId>
  <artifactId>de.flapdoodle.embed.mongo</artifactId>
  <scope>test</scope>
</dependency>
testCompile('de.flapdoodle.embed:de.flapdoodle.embed.mongo')
 类似资料:
  • 目前,我有个问题。我可以在mongodb中使用聚合函数查询相应的数据,但是在使用springdatamongodb后,我发现lookup不能使用变量将string转换为objectid,那么该如何编写这个聚合函数呢 如何在spring data mogodb中将其写成mongodb表达式

  • 我正在尝试使用注释启用审核。我的域类具有在构造对象时填充的@Id字段。我添加了一个java。util。lastModified的日期字段,并用@LastModifiedDate对其进行注释。 我已经使用

  • 我不能在HttpSession上进行模拟。测试方法如下所示: 测试结果如下所示: 我总是得到未经授权的例外,但我需要避免它。如何为会话添加一些参数来模拟工作?

  • 我在Java EE托管bean中有以下代码: 其中facesContextProvider是一个用于返回faces上下文的自定义类(对于模拟测试很有用)。 我想知道如何使用Mockito在JUnit中测试这一点。我正在尝试以下方法的组合: 那么单元测试工具将是: 然后单元测试代码将是:

  • 本节介绍与JUnit Framework相关的各种模拟测试。 您可以在本地计算机上下载这些示例模拟测试,并在方便时离线解决。 每个模拟测试都提供一个模拟测试密钥,让您自己验证最终得分和评分。 JUnit Mock Test I 问题1 - 以下哪项描述正确测试? A - 测试是检查应用程序功能的过程,是否按照要求运行。 B - 测试是单个实体(类或方法)的测试。 C - 以上两者。 D - 以上都

  • 现在您已经了解了TestNG及其各种测试,您现在必须担心如何重构现有的JUnit代码。 没有必要担心,因为TestNG提供了一种按照自己的节奏从JUnit转换到TestNG的方法。 您可以使用TestNG执行现有的JUnit测试用例。 TestNG可以自动识别并运行JUnit测试,因此您可以将TestNG用作所有现有测试的运行器,并使用TestNG编写新测试。 您所要做的就是将JUnit库放在Te