Tag: 嘲笑

如何在AngularJSunit testing中模拟$ window.location.replace?

我有以下服务: angular.module("services") .factory("whatever", function($window) { return { redirect: function() { $window.location.replace("http://www.whatever.com"); } }; }); 如何在unit testing中模拟$window对象以防止在运行testing时重新加载页面? 我试过使用 spyOn($window.location, 'replace').andReturn(true); ,但它没有工作(仍然有"Some of your tests did a full page reload!"错误)和 $provide.value('$window', {location: {replace: jasmine.createSpy()}}) ,但我得到一个错误( Error: [ng:areq] Argument 'fn' is not a function, got Object )堆栈跟踪指向只有angular度自己的源,所以这是没有多大的帮助…

为什么我需要一个嘲笑框架为我的单位testing?

最近围绕.NET世界中所有不同的嘲笑框架都有相当多的炒作。 我还没有完全掌握他们的优点。 编写我自己需要的模拟对象似乎并不难。 特别是在Visual Studio的帮助下,我可以快速编写一个实现我想要模拟的接口的类(它为我自动生成几乎所有的东西),然后为我testing所需的方法编写一个实现。 完成! 为了节省几行代码的唯一目的,为什么要理解一个嘲笑框架的麻烦。 或者是一个嘲笑的框架不仅是关于保存代码行?

如何使用angular度平移进行unit testing

我从这里使用angular度翻译( http://pascalprecht.github.io/angular-translate/ ),它只是工作正常,但它打破了我的控制器的unit testingwhith错误: Unexpected request: GET scripts/i18n/locale-en.json 我不明白为什么? 我使用自我testing和业力。 app.js: 'use strict'; (function() { angular.module('wbApp', ['authService', 'authUserService', 'checkUserDirective', 'ui.bootstrap', 'pascalprecht.translate']) .config(function($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/login.html', controller: 'LoginCtrl', access: { isFree: true } }) .when('/main', { templateUrl: 'views/main.html', controller: 'MainCtrl', access: { isFree: false } }) .otherwise({ redirectTo: '/' }); }); })(); configTranslate.js: […]

使用Mockito,我如何validation一个方法被调用了一定的参数?

我正在使用Mockito 1.9.0。 我将如何validation一个方法被调用一次,并传递给它的一个领域包含一定的价值? 在我的JUnittesting中,我有 @Before public void setupMainProg() { // Initialize m_orderSvc, m_opportunitySvc, m_myprojectOrgSvc … m_prog = new ProcessOrdersWorker(m_orderSvc, m_opportunitySvc, m_myprojectOrgSvc); } // setupMainProg @Test public void testItAll() throws GeneralSecurityException, IOException { m_prog.work(); } 方法“工作”调用“m_orderSvc”(传递到对象的参数之一)的方法。 “m_orderSvc”又包含一个成员字段“m_contractsDao”。 我想validation一下“m_contractsDao.save”被调用了一次,并且传递给它的参数包含一个特定的值。 这可能有点混乱。 让我知道如何澄清我的问题,我很乐意这样做。

用Mockito作为参数来保存Class <T>的方法

有一个通用的方法需要一个类作为参数,我有问题与Mockito存根问题。 该方法如下所示: public <U extends Enum<U> & Error, T extends ServiceResponse<U>> T validate( Object target, Validator validator, Class<T> responseClass, Class<U> errorEnum); 至less对我来说,这太神奇了…我可以想象没有它的生活,但是其他的代码库很高兴地使用它… 我打算在unit testing中存根这个方法返回一个新的空对象。 但是我怎么用mockito来做这个? 我试过了: when(serviceValidatorStub.validate( any(), isA(UserCommentRequestValidator.class), UserCommentResponse.class, UserCommentError.class) ).thenReturn(new UserCommentResponse()); 但由于我混合和匹配匹配器和原始值,我得到“org.mockito.exceptions.misusing.InvalidUseOfMatchersException:无效的参数匹配使用!”

为什么嘲笑课是如此糟糕?

我最近和一位同事讨论了嘲笑。 他说嘲笑课是非常糟糕的,不应该做,只有less数情况。 他说只有接口应该被嘲笑,否则就是一个架构错误。 我想知道为什么这个声明(我完全相信他)是如此正确? 我不知道,希望被说服。 我有没有想到嘲笑的地方(是的,我读了马丁·福勒的文章 )

使用Mockito来validation方法后没有任何东西被调用

我正在使用Mockito编写一个unit testing在Java中,我想validation某个方法是最后一个对象上调用。 我正在testing的代码中做这样的事情: row.setSomething(value); row.setSomethingElse(anotherValue); row.editABunchMoreStuff(); row.saveToDatabase(); 在我的模拟中,我并不关心在行上编辑所有内容的顺序,但是保存它之后,我不试图做更多的事情。 有没有一个好的方法来做到这一点? 请注意,我不是在寻找verifyNoMoreInteractions:它不能确认saveToDatabase是最后一个叫做的事情,而且如果我调用我没有明确validation的行上的任何东西,它也会失败。 我希望能够这样说: verify(row).setSomething(value); verify(row).setSomethingElse(anotherValue); verifyTheLastThingCalledOn(row).saveToDatabase(); 如果有帮助,我从JMocktesting切换到Mockito: row.expects(once()).method("saveToDatabase").id("save"); row.expects(never()).method(ANYTHING).after("save");

什么是您使用的JavaScriptunit testing和嘲笑框架?

我的主要JavaScript框架是jQuery,所以我希望我的unit testing和嘲笑框架兼容。 我宁愿不必引入另一个JavaScript框架。 我目前正在使用QUnit进行unit testing,并且使用Jack进行模拟 ,但对于JavaScript的整个unit testing来说,我还是个新手。 其他人有更好的工具来build议吗? 什么为你工作?

我如何模拟一个静态方法,返回void PowerMock?

我的项目中有一些静态的util方法,其中一些只是传递或抛出exception。 这里有很多关于如何模拟一个返回types不是void的静态方法的例子。 但是,我怎样才能嘲笑一个静态方法返回无效只是“ doNothing() ”? 非void版本使用这些代码行: @PrepareForTest(StaticResource.class) … PowerMockito.mockStatic(StaticResource.class); … Mockito.when(StaticResource.getResource("string")).thenReturn("string"); 但是,如果应用于返回void的StaticResources ,则编译将会抱怨when(T)不适用于void … 有任何想法吗? 一个解决方法可能只是让所有静态方法返回一些Boolean成功,但我不喜欢解决方法。

如何用模拟来嘲笑只读属性?

你怎么用模拟来嘲笑一个只读的属性? 我试过了: setattr(obj.__class__, 'property_to_be_mocked', mock.Mock()) 但问题是,它然后适用于所有类的实例…这打破了我的testing。 你有其他想法吗? 我不想嘲笑完整的对象,只有这个特定的属性。