Tag: 嘲笑

Python Mock对象与多次调用的方法

我有一个类,我正在testing哪个具有作为依赖另一类(其实例传递给CUT的init方法)。 我想用Python Mock库来嘲笑这个类。 我有什么是这样的: mockobj = Mock(spec=MyDependencyClass) mockobj.methodfromdepclass.return_value = "the value I want the mock to return" assertTrue(mockobj.methodfromdepclass(42), "the value I want the mock to return") cutobj = ClassUnderTest(mockobj) 这是好的,但“methodfromdepclass”是一个参数化的方法,因此我想创build一个单一的模拟对象,其中取决于哪些parameter passing给methodfromdepclass它返回不同的值。 我想要这个参数化的行为的原因是我想要创build包含不同的值(其值从mockobj返回什么产生的)的ClassUnderTest的多个实例。 有点什么我在想(这当然是行不通的): mockobj = Mock(spec=MyDependencyClass) mockobj.methodfromdepclass.ifcalledwith(42).return_value = "you called me with arg 42" mockobj.methodfromdepclass.ifcalledwith(99).return_value = "you called me with arg 99" assertTrue(mockobj.methodfromdepclass(42), "you called […]

Jasmine 2.0 async done()和angular-mocks inject()在同一个testing中它()

我平时的testing用例看起来像 it("should send get request", inject(function(someServices) { //some test })); 和Jasmine 2.0asynchronoustesting应该看起来像 it("should send get request", function(done) { someAsync.then(function(){ done(); }); }); 我如何在一次testing中同时使用完成和注入?

ASP / NET MVC:testing控制器与会话? 惩戒?

我在这里读了一些答案:testing视图和控制器,并嘲笑,但我仍然无法弄清楚如何testingASP.NET MVC控制器读取和设置会话值(或任何其他基于上下文的variables)。我如何为我的testing方法提供(Session)上下文? 嘲笑答案? 有人有例子吗? 基本上,我想在调用控制器方法之前假冒一个会话,让控制器使用该会话。 有任何想法吗?

Moq和Rhino.mocks的function是什么?

我无法findMoq和Rhino的特定function对比。 所有的问题都是“你更喜欢哪个,为什么”,或者“这里是你如何在犀牛做一个简单的模拟,以及如何在moq中完成”。 我无法在任何地方find深度比较。 我意识到语法的差异,我不在寻找答案。 我正在寻找能力比较 。 例如: 犀牛有Expect.On()为线程嘲笑。 莫莫可以这样做吗? 怎么样多模拟(一个模拟实现多个接口)。 莫莫可以这样做吗? 我相信Moq现在可以嘲笑受保护的成员。 犀牛可以这样做吗? 编辑 :我最终也在看一些其他的.Net框架。

Androidtesting驱动开发

我在制作Android应用程序方面有相当的经验。 对于我的新项目,我们决定进行testing驱动开发(TDD)。 我一直在Robotium用户场景testing中弄湿我的手,并且它工作正常,看起来也很容易。 对于unit testing,我尝试使用(MockContext Android Class)来模拟上下文,但我无法这样做。 我浏览了这个博客http://sites.google.com/site/androiddevtesting/并通过这个http://sdudzin.blogspot.com/2011/01/easy-unit-testing-for-android.html ,这表明在Android应用程序中的嘲弄仍然非常有限和困难,并build议使用PowerMock,jMockit,JeasyTest或Roboelectric(与Mockito和Maven结合)甚至RoboGuice。 我想从你们那里得到你认为哪个unit testing框架最适合testingAndroid应用程序的build议。 (尤其是testingAndroid类,可能会给出模拟上下文和其他模拟function,以便尽可能使testing用例尽可能独立)。 任何build议或指针都会有所帮助。 谢谢

unit testing处理退化的networking堆栈,文件损坏和其他缺陷

我主要是一个C ++编码器,到目前为止,没有真正为我的所有代码编写testing。 我已经认定这是一个坏主意(tm),在添加了一些巧妙地破坏了旧function的新function之后,或者根据你想看的方式,引入了一些新的function。 但是,unit testing似乎是一个非常脆弱的机制。 你可以在“完美”的条件下testing某些东西,但是当你的代码中断的时候,你不会看到你的代码是如何执行的。 举例来说,抓取工具是抓取一些特定网站的数据X.您是否简单地保存示例页面,对其进行testing,并希望网站永远不会更改? 这对于回归testing可以很好地工作,但是,你会写什么样的testing来不断地检查这些网站,并让你知道应用程序何时不做这个工作,因为网站改变了一些东西,现在会导致你的应用程序崩溃? 你不想让你的testing套件监视代码的意图吗? 上面的例子是有点人为的,还有一些我没有碰到(如果你没有猜到的话)。 不过,让我挑一些我有的东西。 你如何testing一个应用程序将面对退化的networking堆栈时的工作? 也就是说,由于某种原因,你有一个适度的数据包丢失量,并且你有一个函数DoSomethingOverTheNetwork() ,当堆栈没有按照它的要求执行时,它应该会优雅地退化; 但是呢? 开发人员通过专门build立一个网关,在首次写入数据包时模拟一个不好的networking,进行个人testing。 几个月后,有人检查了一些细微修改的代码,所以不能及时检测到退化,或者应用程序甚至不能识别退化,这是从来没有被捕获的,因为你不能运行真实的世界像unit testing这样的testing,可以吗? 此外,如何文件损坏? 假设您将一个服务器列表存储在一个文件中,并且校验和看起来不错,但数据并不是真的。 你想要的代码来处理,你写一些代码,你认为这样做。 你如何testing它确实是应用程序的生命? 你可以吗? 因此,脆性。 unit testing似乎只能在完美的条件下testing代码(这是通过模拟对象等方式来提升的),而不是他们在野外会遇到的情况。 不要误解我的意思,我认为unit testing是很棒的,但是一个仅由它们组成的testing套件似乎是一种巧妙的方法,可以在代码中引入微妙的错误,同时又对自己的可靠性过度自信。 我如何处理上述情况? 如果unit testing不是答案,那是什么? 编辑:我看到很多答案说“只是嘲笑它”。 那么,你不能“嘲笑它”,这是为什么:以我的退化networking堆栈的例子,让我们假设你的函数有一个定义良好的NetworkInterface,我们将模拟。 应用程序通过TCP和UDP发送数据包。 现在,让我们说,嘿,让我们使用模拟对象在接口上模拟10%的损失,看看会发生什么。 你的TCP连接增加了他们的重试次数,以及增加他们的回退,所有的好习惯。 你决定改变你的UDP数据包的X%来实际build立一个TCP连接,有损接口,我们希望能够保证一些数据包的传输,而其他的不应该损失太多。 很好用。 与此同时,在现实世界中,当你增加TCP连接数(或TCP上的数据)时,在一个有损连接的情况下,最终会增加你的UDP数据包丢失,因为你的TCP连接将会结束 – 越来越多地发送他们的数据和/或减less他们的窗口,导致10%的数据包丢失现在更像是90%的UDP数据包丢失。 Whoopsie。 没什么大问题,让我们把它分解成UDPInterface和TCPInterface。 等一下..这些是相互依赖的,testing10%的UDP丢失和10%的TCP丢失是没有什么不同。 所以,问题是现在你不是简单地unit testing你的代码,而是将你的假设引入到操作系统的TCP栈的工作方式中。 而且,这是一个坏主意(tm)。 一个更糟糕的想法,而不是只是避免这整个惨败。 在某些时候,你将不得不创build一个模拟操作系统,其行为完全像你的真实操作系统,除了是可testing的。 这似乎不是一个好的前进方向。 这是我们经历的事情,我相信别人也可以增加他们的经验。 我希望有人会告诉我,我很错,并指出为什么! 谢谢!

模拟PHPUnit – 使用不同参数的相同方法的多重configuration

这样可以configurationPHPUnit模拟吗? $context = $this->getMockBuilder('Context') ->getMock(); $context->expects($this->any()) ->method('offsetGet') ->with('Matcher') ->will($this->returnValue(new Matcher())); $context->expects($this->any()) ->method('offsetGet') ->with('Logger') ->will($this->returnValue(new Logger())); 我使用PHPUnit 3.5.10,因为它期望“logging器”参数,所以我要求匹配器时失败。 这就像第二个期望是重写第一个,但是当我转储模拟,一切都看起来不错。

在斯威夫特嘲笑

你如何在Swift中模拟一个对象? Mirror协议听起来很有希望,但现在并没有太多的工作。 到目前为止,我发现的唯一方法是inheritance并覆盖模拟类的所有方法。 这当然不是一个真正的模拟,远非理想,而是很多的工作。 任何其他的想法? 为什么不OCMock? 来源 : 我可以使用语言桥function使用OCMock吗? 是的,但有限制。 如果你很勇敢。 截至目前这是高度实验性的。 不能保证OCMock将永远支持Swift。 已知的限制: testing必须写在Objective-C中 应该被模拟的对象必须从NSObjectinheritance 没有存根/期待/validation类方法

如何窥探茉莉花的价值财产(而不是一种方法)

茉莉花的spyOn是很好的改变一个方法的行为,但有没有办法改变一个对象的价值属性(而不是一种方法)? 代码可能如下所示: spyOn(myObj, 'valueA').andReturn(1); expect(myObj.valueA).toBe(1);

从urlstring创build一个模拟HttpServletRequest?

我有一个服务,在HttpServletRequest对象上做了一些工作,特别是使用request.getParameterMap和request.getParameter构造一个对象。 我想知道是否有一个简单的方法来提供一个stringforms的url,说 String url = "http://www.example.com/?param1=value1&param"; 并轻松地将其转换为HttpServletRequest对象,以便我可以用我的unit testing进行testing? 或者至less只是这样,request.getParameterMap和request.getParameter工作正常?