Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java和.NET的测试和模拟框架_Java_.net_Tdd_Mocking_Testing - Fatal编程技术网

Java和.NET的测试和模拟框架

Java和.NET的测试和模拟框架,java,.net,tdd,mocking,testing,Java,.net,Tdd,Mocking,Testing,我想知道您对测试/模拟框架的看法,这些框架被广泛使用,并且在Java和.NET之间具有良好的兼容性。我的意思是,我想学习那些在.NET项目中使用的工具,但我仍然希望能够将这些知识应用到Java项目中 我知道有很多关于测试/模拟框架到这些平台的问题,特别是在SO中,但是我没有发现一个关于这两个平台的相似性的问题 我们在.NET项目中使用Rhinomock和NUnit。JUnit将是Java的替代方案N/J系列框架(/,/,等等)通常是彼此的并行端口,或者基于相同的启动原则。这些肯定会让你在他们之

我想知道您对测试/模拟框架的看法,这些框架被广泛使用,并且在Java和.NET之间具有良好的兼容性。我的意思是,我想学习那些在.NET项目中使用的工具,但我仍然希望能够将这些知识应用到Java项目中

  • 我知道有很多关于测试/模拟框架到这些平台的问题,特别是在SO中,但是我没有发现一个关于这两个平台的相似性的问题

    • 我们在.NET项目中使用Rhinomock和NUnit。JUnit将是Java的替代方案

      N/J系列框架(/,/,等等)通常是彼此的并行端口,或者基于相同的启动原则。这些肯定会让你在他们之间至少传递一些知识。

      我在一些Java项目中使用过,我非常喜欢它。 似乎有一个,但我个人还没有用过


      关于单元测试,我使用4.x,与3.x相比,它有一些不错的扩展。我想它提供了类似的功能,但也没有使用过。

      以下是我在Java方面的经验

      单元测试框架

      至于Java中的单元测试,几乎每个人都在使用JUnit,而JUnit4.0使用注释,我知道现在更像NUnit了

      模拟框架

      我们在我们的项目中使用了大约半年的时间,我们确定仅仅做简单的任务就占用了我们大量的时间。事实上,我们开了很多玩笑说EasyMock是多么的不容易

      在参加了一个关于模拟框架的讲座之后,我决定继续,并且从未回头。它允许无痛苦地进行部分模拟——EasyMock需要一个单独的库来实现这一点。此外,Mockito还有更好的错误消息传递功能。当你做错事时,它会给你关于你如何违反Mockito合同的详细错误


      不管怎样,让这两个词都旋转一下,我想你会同意Mockito是一个明显的赢家。

      我们使用MbUnit和Rhino.Mocks进行测试。我真的很喜欢


      我们使用MbUnit的原因是反射器。。也许它也可以在努尼特找到,但我首先在姆布尼特找到它;)

      我建议您查看一下.NET中的mocking。它在概念上与Java端的Mockito非常相似。

      NMock远不是.NET世界中最好的模拟框架。 它是基于字符串的:

      Expect.Once.On(mockView).GetProperty("FromAccount").Will(Return.Value("1234"));
      
      我强烈建议采用更为先进的方式,如:


      首先,区分测试和模拟的概念很重要。对于单元测试(用于驱动测试),JUnit(用于Java)和NUnit(用于.NET)是最流行的选择。模拟(或隔离)框架的情况更加复杂

      模仿框架分为两大阵营,我喜欢称之为“传统”和“另类”

      传统框架主要依赖于可测试性设计和依赖注入。可供选择的框架依赖于Java 5 SE instrumentation特性(Java.lang.instrument包)等东西在运行时修改CIL或字节码,这使得任何依赖项都可以模拟

      此类替代网络的示例有(对于.NET)和(对于Java)(Typemock不是免费的,除非您在开源项目中使用它。)


      至于.NET的常规模拟框架,目前最流行的两个是和。两者都严重依赖C#3.0特性,特别是lambda语法,以实现对模拟对象行为和期望的简明规范。

      +1表示模拟对象。它比EasyMock好得多,因为您可以用更少的实现进行模拟。对于记录,JMock2与JMock1(NMock是从JMock1克隆的)有着显著的不同。它不再使用字符串作为方法名。答案很好!只是一个小小的修正:去年10月JMockit项目转移到了谷歌代码;当前的url是。罗格里奥:谢谢你的更正!与Java相比,我更了解.NET的最新信息。
      Expect.Call(mockView.FromAccount).Returns("1234");