我想知道为什么.Net IoC容器不能轻易支持单个接口的多个实现!可能是我错了,但就我所见,像Ninject这样的框架部分支持使用注释这个功能(如何?).我不认为像Windsor或简单注入器这样的其他框架有一个简单的机制来支持这种情况.
是否有任何理由不支持许多框架?AFAIK,使用接口的最重要原因之一是实现松散耦合.如果框架旨在改善松散耦合,不能流利地支持单个接口的多个实现,我不明白为什么!
PS当然我理解在运行时会出现解决问题,容器会混淆选择哪种实现,但这是设计中必须考虑的事情,对吧?
我试图模拟一些基于反射的方法.在下面你可以看到细节,
被测试的班级
public class TracerLog {
@AroundInvoke
public Object logCall(InvocationContext context) throws Exception {
Logger logger = new Logger();
String message = "INFO: Invoking method - "
+ context.getMethod().getName() + "() of Class - "
+ context.getMethod().getDeclaringClass();
logger.write(message);
return context.proceed();
}
}
Run Code Online (Sandbox Code Playgroud)
测试
public class TracerLogTest {
@Mock
InvocationContext mockContext;
@Mock
Logger mockLogger;
@InjectMocks
private TracerLog cut = new TracerLog();
@BeforeMethod
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void logCallTest() throws Exception {
when(mockContext.proceed()).thenReturn(true);
when(mockContext.getMethod().getDeclaringClass().getName()).thenReturn("someClass");
cut.logCall(mockContext);
verify(mockContext).proceed();
}
Run Code Online (Sandbox Code Playgroud)
} …
我正在对EJB 3.1的单元测试进行一项小型研究.最后,我的目标是为单元测试EJB 3.1生成一个易于使用的解决方案.
我希望我能为单元测试EJB做一个完整的解决方案,一旦完成,我就可以在这个论坛上分享.
感谢您的支持.
是否有任何工具或库可用于使用JPA或实体bean生成测试数据?我相信这对于单元测试非常有用,在单元测试中,我们可以拥有一个内存数据库,并在开始测试时就动态生成数据。因此,将不会与实际的数据库服务器进行通信,也不会浪费任何时间。
我只能找到JPAMock。但是它仍在开发中。如果有人可以提供良好的指示,那将是很好的。
非常感谢。
unit-testing hibernate stub-data-generation data-generation jpa-2.0
EasyMock或Unitils Mock(非Unitils支持的EasyMock)中是否有任何技术可以将模拟直接注入到被测试类中?
例如.在Mockito中,可以将mocks直接注入类的成员变量中,
public class TimeTrackerTest {
@InjectMocks // Used to create an instance the CUT
private TimeTrackerBean cut;
@Mock // Used to create a Mock instance
EntityManager em;
@Before
public void injectMockEntityManager() {
MockitoAnnotations.initMocks(this); // Injects Mocks into CUT
}
@Test
...
}
Run Code Online (Sandbox Code Playgroud)
这样的事情可以用EasyMock或Unitils Mock完成吗?在easymock中,我们需要在CUT中使用单独的setter方法来支持测试中的注入.我是对的还是方向注射在某种程度上是可能的?
-谢谢
嵌入式EJB容器与生产中使用的实际服务器容器之间的明显区别是什么。
我可以找到2个sceanrios。
AFAIK,两者都称为嵌入式容器。那么,它的真正含义是什么?
另外,嵌入式容器是否具有EJB规范支持的所有功能?
我正在使用 Mockito 和 TestNG 进行单元测试。我有静态方法可以模拟,我尝试了 PowerMock。不幸的是,我无法在 TestNG 中将 DataProvider 与 PowerMock 一起使用。
问题:在使用 PowerMock 时,是否有任何解决方法可以使用 TestNG 的 DataProvider?