为Junit测试注入不同的枚举值

时间:2014-03-24 19:21:12

标签: spring junit

我在要测试的类中定义了一个autowired bean:

@Autowired
ContextEnum myContext;

稍后使用:

if(ContextEnum.A.equals(myContext)) {
// do something
} else if(ContextEnum.B.equals(myContext)) {
// do something
}

在我的junits配置中,我将其设置为返回ContextEnum的特定值,如下所示:

@Configuration
@Lazy
public class myJunitConfig {
    @Bean
    public ContextEnum getContextEnum() {
       return ContextEnum.A;
    }
}

我的Junit:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {
    myJunitConfig.class
})
public class ContextTest {

  @Test
  public void testContextB() {
      Input input = createMock(Input.class);
      expect(input.getId()).return(1L).anyTimes();
      client.getHandle().call();
  }
}

然而,这不允许我测试我的枚举的不同值。有没有办法让我在junit上使用setter / constructor注入之外注入不同的枚举值?提前致谢。

1 个答案:

答案 0 :(得分:0)

@Theories与Spring的TestContextManager

结合使用