Mockito参数匹配器(例如, argThat , eq , same和ArgumentCaptor.capture() )与Hamcrest匹配器的行为非常不同。 Mockito匹配器通常会导致InvalidUseOfMatchersExceptionexception,即使在使用任何匹配器后执行的代码也是如此。 Mockito匹配器会受到怪异规则的约束,例如只要在给定方法中使用匹配器的情况下,只需要使用Mockito匹配器即可。 Mockito匹配器在覆盖Answer或使用(Integer) any()等时可能导致NullPointerException 用Mockito匹配器以某种方式重构代码可能会产生exception和意外的行为,并可能完全失败。 为什么Mockito匹配器是这样devise的,它们是如何实现的?
我写了一个工厂来生成java.sql.Connection对象: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(…); } catch (SQLException e) { throw new RuntimeException(e); } } } 我想validation传递给DriverManager.getConnection的参数,但我不知道如何模拟一个静态方法。 我正在使用JUnit 4和Mockito进行testing。 有没有一种好的方法来模拟/validation这个特定的用例?
如何使用IoC容器进行单元测试? 在使用IoC的巨大解决方案(50多个项目)中管理模拟是否有用? 任何经验? 在单元测试中使用它的任何C#库都可以正常工作吗?