我想知道您对广泛使用并在Java和.NET之间具有良好兼容性的测试/模拟框架的看法。我的意思是,我想学习这些工具,以在.NET项目中使用,但我仍然希望能够将这些知识应用于Java项目。
- 我知道在SO上有许多关于这些平台特定的测试/模拟框架的问题,但我还没有找到一个问题来比较这些框架在这两个平台上的相似之处。
从我的Java方面经验来看,以下是我所见到的情况。
单元测试框架
至于Java中的单元测试,几乎每个人都在使用JUnit,并且使用注释的JUnit 4.0现在更像NUnit了。
Mocking框架
我们在项目中使用EasyMock大约半年时间,我们发现它花费了我们很多时间来完成简单的任务。实际上,我们开了很多关于EasyMock不易用的玩笑。
在参加了一次有关mocking框架的讲座后,我决定选择Mockito并且再也没有回头过。它可以轻松地进行部分mocking - 这是EasyMock需要一个单独的库才能实现的。此外,Mockito具有更好的错误消息。当您做错事时,它会给出详细的错误信息,告诉您如何违反了Mockito的合同。
无论如何,请尝试两者,并且我认为您会同意Mockito是明显的获胜者。
Expect.Once.On(mockView).GetProperty("FromAccount").Will(Return.Value("1234"));
Expect.Call(mockView.FromAccount).Returns("1234");
我们在.NET项目中使用RhinoMocks和NUnit。JUnit是Java的替代选择。
我们使用MbUnit和Rhino.Mocks进行测试。我非常喜欢它。
我们使用MbUnit的原因是因为Reflector..或许在NUnit中也可以找到,但我先在MbUnit中发现了它;)