【问题标题】:Mockito... Spring testingMockito... 春季测试
【发布时间】:2012-09-12 15:53:44
【问题描述】:

这是我的测试课..

  @RunWith(SpringJUnit4ClassRunner.class)
   @ContextConfiguration(loader=AnnotationConfigContextLoader.class)
   public Testclass {
     @Autowired
     private VClasss vclass;
       .....
       .....

     @Before
     public void setup() {
       //mockito.when.(vClass.isvalid()).thenReturn(true);

    }
    @After
    public void verify( {
     Mockito.verify(vCLass, VerificationModeFactory.times(1)).isValid();
     Mockito.reset();
    }


   @Test
   public void test1() {
     //set up test which will call the mock isValid method

   }

   @Test
   public void test1() {
    //set up test which will call the mock isValid method
   }


   @Configuration
   static class configurationForTest {
    @Bean
     public VClass vClass() {
      return mockito.mock(VClass.class);
     }
   }

我的问题是,当我设置它时,第一个测试通过了,因为验证是正确的 isValid 被调用了一次,但是第二个失败,因为现在验证抱怨要求 isValid 被调用了两次。我期望在 mockito 上使用 reset 方法在每次测试之后重置呼叫计数..

有人有什么建议吗?

【问题讨论】:

    标签: spring-mvc mockito spring-test spring-test-mvc springmockito


    【解决方案1】:

    您没有通过任何模拟来重置。该行应该是

    Mockito.reset(vClass);
    

    【讨论】:

    • 是否可以为单个方法重置计数?使用您提供的行重置整个模拟。
    • AFAIK,没有。重置模拟已经是一种气味。重置单个方法会更臭。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-11-21
    • 1970-01-01
    • 2015-02-23
    相关资源
    最近更新 更多