在嘲笑框架中,你可以嘲笑一个对象或间谍。 这两者之间有什么区别,什么时候我应该使用一个呢? 例如,看看mockito,我发现使用间谍和嘲笑也有类似的情况,但我不确定两者之间的区别。
有没有图书馆来嘲笑localStorage ? 我一直在使用Sinon.JS的大部分我的其他JavaScript嘲笑,发现它真的很棒。 我最初的testing表明,localStorage拒绝在Firefox(sadface)中分配,所以我可能需要一些破解这个:/ 我现在的select(如我所见)如下: 创build所有我的代码使用的包装function,并嘲笑这些 为localStorage创build某种(可能是复杂的)状态pipe理(testing之前的快照localStorage,在清理恢复快照中)。 ?????? 你如何看待这些方法?你认为还有其他更好的方法可以解决吗? 无论哪种方式,我将把最终产生的“库”放在github上,以获得开源的好处。
我在一个大量使用IO操作的项目中引入了testing(在本例中是文件系统)。 系统不断打开/closures文件,检查文件是否存在,删除它们等等。 很明显,经常嘲笑不会太有用,因为这会使我的testing很难设置和推理。 另一方面,有一个假的文件系统将是非常棒的,我觉得很容易设置。 看来ruby的人再次这样做了,这正是我所要求的ruby: http : //ozmm.org/posts/fakefs.html 。 有没有什么远程类似的Java?
在使用方形改进框架时,嘲笑服务器进行testing的最好方法是什么? 潜在的方法: 创build一个新的翻新客户端并将其设置在RestAdapter.Builder()。setClient()中。 这涉及parsingRequest对象并将Json作为Response对象返回。 实现这个带注释的接口作为模拟类,并使用它来代替RestAdapter.create()提供的版本(不会testinggson序列化) ? 理想情况下,我想让模拟的服务器提供json响应,所以我可以同时testinggson序列化。 任何例子将不胜感激。
鉴于以下Mockito声明: when(mock.method()).thenReturn(someValue); 假定mock.method()语句将返回值传递给when(),Mockito如何为模拟创build一个代理对象? 我想这是使用一些CGLib的东西,但会有兴趣知道这是如何在技术上完成的。
模拟有一个有用的assert_called_with()方法 。 不过,据我所知,这只会检查最后一次调用方法。 如果我有连续三次调用模拟方法的代码,每次使用不同的参数,我如何使用它们的特定参数来声明这三个调用?
我试图让我的一个模拟对象抛出一个检查exception,当一个特定的方法被调用。 我正在尝试以下。 @Test(expectedExceptions = SomeException.class) public void throwCheckedException() { List<String> list = mock(List.class); when(list.get(0)).thenThrow(new SomeException()); String test = list.get(0); } public class SomeException extends Exception { } 但是,这会产生以下错误。 org.testng.TestException: Expected exception com.testing.MockitoCheckedExceptions$SomeException but got org.mockito.exceptions.base.MockitoException: Checked exception is invalid for this method! Invalid: com.testing.MockitoCheckedExceptions$SomeException 看看Mockito文档 ,他们只使用RuntimeException ,是不是可能从Mockito的模拟对象抛出检查exception?
我正在使用模拟 Python,并想知道这两种方法哪一个更好(阅读:更pythonic)。 方法一 :只需创build一个模拟对象并使用它。 代码如下所示: def test_one (self): mock = Mock() mock.method.return_value = True self.sut.something(mock) # This should called mock.method and checks the result. self.assertTrue(mock.method.called) 方法二 :使用补丁创build一个模拟。 代码如下所示: @patch("MyClass") def test_two (self, mock): instance = mock.return_value instance.method.return_value = True self.sut.something(instance) # This should called mock.method and checks the result. self.assertTrue(instance.method.called) 两种方法都是一样的。 我不确定这种差异。 谁能开导我吗?
有什么办法来为不同的input参数定义不同的模拟期望? 例如,我有数据库层类称为数据库。 这个类有一个叫做“Query(string $ query)”的方法,该方法在input时使用一个SQL查询string。 我可以为这个类(DB)创build模拟,并为依赖于input查询string的不同Query方法调用设置不同的返回值吗?
我的理解是, MagicMock是Mock的超集,它自动执行“魔术方法”,从而无缝地为列表,迭代等提供支持。那么,纯Mock存在的原因是什么? 这不仅仅是一个可以忽略的MagicMock精简版吗? Mock类是否知道MagicMock中没有的任何技巧?