草庐IT

使用 Junit 的 Spring 测试 session 范围 bean

我有一个session范围的bean,它保存每个httpsession的用户数据。我想编写一个Junit测试用例来测试session范围的bean。我想编写测试用例,以便它可以证明每个session都创建了bean。任何关于如何编写此类Junit测试用例的指针? 最佳答案 为了在单元测试中使用请求和session范围,您需要:在应用程序上下文中注册这些范围创建模拟session并请求通过RequestContextHolder注册模拟请求类似这样的东西(假设你使用SpringTestContext来运行你的测试):abstractS

使用 Junit 的 Spring 测试 session 范围 bean

我有一个session范围的bean,它保存每个httpsession的用户数据。我想编写一个Junit测试用例来测试session范围的bean。我想编写测试用例,以便它可以证明每个session都创建了bean。任何关于如何编写此类Junit测试用例的指针? 最佳答案 为了在单元测试中使用请求和session范围,您需要:在应用程序上下文中注册这些范围创建模拟session并请求通过RequestContextHolder注册模拟请求类似这样的东西(假设你使用SpringTestContext来运行你的测试):abstractS

java - 如何在 Junit 中使用 @InjectMocks 和 @Autowired 注释

我有一个A类,它使用3个不同的Autowiring类publicclassA(){@AutowiredprivateBb;@AutowiredprivateCc;@AutowiredprivateDd;}在测试它们时,我希望只有2个类(B和C)作为模拟,并让D类正常运行时Autowiring,此代码不适用于我:@RunWith(MockitoJUnitRunner.class)publicclassaTest(){@InjectMocksprivateAa;@MockprivateBb;@MockprivateCc;@AutowiredprivateDd;}真的有可能吗?

java - 如何在 Junit 中使用 @InjectMocks 和 @Autowired 注释

我有一个A类,它使用3个不同的Autowiring类publicclassA(){@AutowiredprivateBb;@AutowiredprivateCc;@AutowiredprivateDd;}在测试它们时,我希望只有2个类(B和C)作为模拟,并让D类正常运行时Autowiring,此代码不适用于我:@RunWith(MockitoJUnitRunner.class)publicclassaTest(){@InjectMocksprivateAa;@MockprivateBb;@MockprivateCc;@AutowiredprivateDd;}真的有可能吗?

java - 在 JUnit 中使用 Spring 测试服务时如何回滚数据库事务?

我测试我的DAO和服务没有问题,但是当我测试INSERTs或UPDATEs时,我想回滚事务并且不影响我的数据库。我在我的服务中使用@Transactional来管理事务。我想知道,是否有可能知道一个事务是否可以,但回滚它以防止更改数据库?这是我的测试:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:/META-INF/spring.cfg.xml")@TransactionConfiguration(defaultRollback=true)publicclassMySe

java - 在 JUnit 中使用 Spring 测试服务时如何回滚数据库事务?

我测试我的DAO和服务没有问题,但是当我测试INSERTs或UPDATEs时,我想回滚事务并且不影响我的数据库。我在我的服务中使用@Transactional来管理事务。我想知道,是否有可能知道一个事务是否可以,但回滚它以防止更改数据库?这是我的测试:@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations="classpath:/META-INF/spring.cfg.xml")@TransactionConfiguration(defaultRollback=true)publicclassMySe

spring 3 Autowiring 和junit测试

我的代码:@ComponentpublicclassA{@AutowiredprivateBb;publicvoidmethod(){}}publicinterfaceX{...}@ComponentpublicclassBimplementsX{...}我想在A类隔离测试。我必须模拟B类吗?如果是,如何?因为它是Autowiring的,并且没有setter可以发送模拟对象。 最佳答案 IwanttotestinisolationclassA.您绝对应该模拟B,而不是实例化和注入(inject)B的实例。重点是测试A是否B工作,因此

spring 3 Autowiring 和junit测试

我的代码:@ComponentpublicclassA{@AutowiredprivateBb;publicvoidmethod(){}}publicinterfaceX{...}@ComponentpublicclassBimplementsX{...}我想在A类隔离测试。我必须模拟B类吗?如果是,如何?因为它是Autowiring的,并且没有setter可以发送模拟对象。 最佳答案 IwanttotestinisolationclassA.您绝对应该模拟B,而不是实例化和注入(inject)B的实例。重点是测试A是否B工作,因此

spring - 防止 Application/CommandLineRunner 类在 JUnit 测试期间执行

如果在您的TestCase类中有这样的注释:@SpringApplicationConfiguration(classes={Application.class})这将导致实现CommandLineRunner接口(interface)的Application.class运行所需的方法publicvoidrun(String...args)throwsException我仍然认为这主要是不想要的行为,因为在您的测试环境中,您可能不想启动整个应用程序。我想到了两个解决这个问题的方法:从我的Application类中删除CommandLineRunner接口(interface)拥有不同的

spring - 防止 Application/CommandLineRunner 类在 JUnit 测试期间执行

如果在您的TestCase类中有这样的注释:@SpringApplicationConfiguration(classes={Application.class})这将导致实现CommandLineRunner接口(interface)的Application.class运行所需的方法publicvoidrun(String...args)throwsException我仍然认为这主要是不想要的行为,因为在您的测试环境中,您可能不想启动整个应用程序。我想到了两个解决这个问题的方法:从我的Application类中删除CommandLineRunner接口(interface)拥有不同的