有没有什么方法可以用Mockito来嘲笑课堂上的某些方法,而不是其他的方法? 例如,在这个(诚然是人为devise)的Stock类中,我想模拟getPrice()和getQuantity()返回值(如下面的testing代码片段所示),但是我想让getValue()执行在Stock类 public class Stock { private final double price; private final int quantity; Stock(double price, int quantity) { this.price = price; this.quantity = quantity; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public double getValue() { return getPrice() * getQuantity(); } @Test public void getValueTest() { Stock […]
我如何testing下面的代码与模拟 (使用模拟 ,补丁装饰和迈克尔福德的模拟框架提供的哨兵): def testme(filepath): with open(filepath, 'r') as f: return f.read()
我有一个AngularJS服务,我想unit testing它。 angular.module('myServiceProvider', ['fooServiceProvider', 'barServiceProvider']). factory('myService', function ($http, fooService, barService) { this.something = function() { // Do something with the injected services }; return this; }); 我的app.js文件有这些注册: angular .module('myApp', ['fooServiceProvider','barServiceProvider','myServiceProvider'] ) 我可以testingDI是这样工作的: describe("Using the DI framework", function() { beforeEach(module('fooServiceProvider')); beforeEach(module('barServiceProvider')); beforeEach(module('myServiceProvder')); var service; beforeEach(inject(function(fooService, barService, myService) { service=myService; })); it("can be instantiated", function() { expect(service).not.toBeNull(); […]
什么最好的方法来模拟用户按“enter”? $(元素).keypress()似乎不允许我传入按下的实际键。 这是unit testing。
我知道我是如何使用这些术语的,但是我想知道是否有可接受的用于unit testing的伪造 , 嘲弄和剔除的定义? 你如何定义这些testing? 描述你可能使用的情况。 以下是我如何使用它们: Fake :实现接口但包含固定数据和无逻辑的类。 根据实施情况简单地返回“好”或“坏”数据。 模拟(Mock) :一个实现了接口的类,允许dynamic设置值的返回/exception,从特定方法抛出,并提供检查特定方法是否被调用/未调用的能力。 存根 :就像一个模拟类,除了它没有提供validation方法被调用/不被调用的能力。 嘲笑和存根(stub)可以由手工生成或由嘲笑框架生成。 假类是手工生成的。 我主要使用mock来validation我的类和相关类之间的交互。 一旦我validation了交互,并使用我的代码testing替代path,我使用了存根(stub)。 我主要使用假类来抽象出数据的依赖关系,或者当模拟/存根(stub)过于繁琐而无法每次设置时。
我正在编写一个testing,这个testing取决于扩展方法的结果,但是我不希望这个扩展方法的未来失败破坏这个testing。 嘲笑这个结果似乎是一个明显的select,但Moq似乎并没有提供一种重写静态方法的方法 (对扩展方法的要求)。 Moq.Protected和Moq.Stub也有类似的想法,但是似乎并没有提供这种情况。 我是否错过了一些东西,或者我应该以这种不同的方式去思考? 这是一个简单的例子,失败与通常的“对不可覆盖的成员无效的期望” 。 这是一个不好的例子,需要模拟一个扩展方法,但它应该做的。 public class SomeType { int Id { get; set; } } var ListMock = new Mock<List<SomeType>>(); ListMock.Expect(l => l.FirstOrDefault(st => st.Id == 5)) .Returns(new SomeType { Id = 5 }); 至于任何可能build议我使用隔离器的TypeMock瘾君子:我很欣赏这样的努力,因为它看起来像TypeMock可以做蒙住眼睛和醉酒的工作,但我们的预算不会很快增加。
我想testing一个抽象类。 当然,我可以手动编写一个从类inheritance的模拟 。 我可以使用模拟框架(我正在使用Mockito)而不是手工制作模拟器吗? 怎么样?
我怎样才能嘲笑我的位置在一个物理设备(Nexus One)? 我知道你可以使用仿真器控制面板中的仿真器来做到这一点,但是这对于物理设备不起作用。
在Java中创build模拟对象的最佳框架是什么? 为什么? 每个框架的优缺点是什么?
什么是嘲笑? 。