关键词:
【中文标题】我们如何为嵌套函数编写单元测试用例(Jasmine)?【英文标题】:How do we write Unit test cases (Jasmine) for nested functions? 【发布时间】:2017-05-29 02:51:47 【问题描述】:我正在为以下场景编写一个测试用例。代码覆盖率没有完全覆盖。不知道能不能写。如果我问任何错误的方法,请指导我为这种情况编写一个测试用例,并在将来避免这个问题。至少告诉它可能与否
(function()
'use strict';
angular
.module('myApp')
.component("testLockCtrl",
templateUrl: 'wwwroot/html/myLocation/testLock.html',
controller: 'testLockCtrl as vm'
)
.controller("testLockCtrl", testLockCtrl);
testLockCtrl.$inject = ['SessionService', 'HttpRequestSoapAPI'];
/*Parent Controller*/
function testLockCtrl($rootScope, $mdDialog)
vm.ChangeDataController=ChangeDataController;
/*childer controller*/
function ChangeDataController($scope)
$scope.tempData = true;
/*following functions (child of change data controller) can called in click*/
$scope.editData = function()
$scope.tempData = false;
$scope.editDatas = function()
/*some code*/
function addData()
TC$DialogMgr.tag(function(tagID)
$mdDialog.show(
locals: testCase: vm ,
controller: ChangeDataController,
parent: angular.element(document.body),
templateUrl: "wwwroot/html/myLocation/addData.html",
clickOutsideToClose: true,
preserveScope: true,
controllerAs: 'vm'
).then(function()
, function()
).finally(function()
TC$DialogMgr.unTag(tagID);
);
, TC$DialogMgr.type.Input);
)();
it("Should check if Module Flag status is received", function ()
var data = [ loc: 'mde', Status: -1 ];
testLockCtrl.ChangeDataController(data);
var testData=testLockCtrl.editDatas ()
expect(testData).toBeDefined();
)
上面是我的测试用例,它可以覆盖子控制器,而不是它的嵌套函数。我们可以从controller.js文件访问测试用例中的范围变量吗?而且代码覆盖率仅涵盖 ChangeDataController 函数,而不是其内部函数。请帮我写一个测试用例并清除我的疑问。
【问题讨论】:
正如答案所暗示的,每个应该被监视或模拟的函数都应该作为范围(或控制器)方法公开。 嗨,我已经更新了我的代码。你能试试看我做错了什么吗? 您没有公开 addData 作为方法,并且 editDatas 出于某种原因在 ChangeDataController 中设置。完全没有理由在组件中使用 $scope,这是反模式。 【参考方案1】:答案是您应该公开这些内部函数或间接测试它们。无论在哪里调用 addData
方法,您都可以确保您已经测试过该函数并将不同的参数传递给调用函数。
或者,如果您将addData
添加到$scope
,您可以更轻松地进行测试:
$scope.addData = function() /* ... */ ;
在你的测试中:
var result = controller.addData(...);
expect(result).toBe(expected);
【讨论】:
我试过同样的方法,但我不能。我更新了我的代码,你能看到吗?如何使用 Jasmine 为以下 javascript 函数编写单元测试用例
】如何使用Jasmine为以下javascript函数编写单元测试用例【英文标题】:HowtowriteUnitTestCaseforbelowjavascriptfunctionusingJasmine【发布时间】:2019-04-1303:24:37【问题描述】:如何使用Jasmine为下面的javascript函数编写单元测试用例?functionGetURL... 查看详情
如何为 JWT 策略编写单元测试用例
】如何为JWT策略编写单元测试用例【英文标题】:HowtowriteunittestcaseforJWTstrategy【发布时间】:2020-09-1909:05:55【问题描述】:我是新来的passport.js,并试图涵盖我的JWT策略的单元测试用例。任何人都可以建议如何做到这一点?//Setup... 查看详情
Spring Boot:如何为删除其余模板编写单元测试用例
】SpringBoot:如何为删除其余模板编写单元测试用例【英文标题】:Springboot:Howtowriteunittestcasefordeleteresttemplate【发布时间】:2020-11-2120:51:14【问题描述】:我正在尝试为HttpHandler类编写单元测试用例,该类具有用于删除的其余模板... 查看详情
AngularJS – 如何在 Jasmine 中为输入事件指令编写单元测试
】AngularJS–如何在Jasmine中为输入事件指令编写单元测试【英文标题】:AngularJS–howtowriteunit-testinJasmineforentereventsdirective【发布时间】:2014-09-1516:45:23【问题描述】:我在AngularJS中创建了enterevent指令,所以我想为该指令运行测试... 查看详情
我们如何为 Socket 连接编写测试用例
】我们如何为Socket连接编写测试用例【英文标题】:HowcanwewritetestcasesforSocketconnections【发布时间】:2022-01-1723:32:37【问题描述】:下面是代码sn-p,必须测试Socket连接的真假场景。publicbooleanpingHost(Stringhostname,intport)try(Socketsocket=new... 查看详情
编写 Karma-Jasmine 单元测试用例时出现“错误:没有路由器提供程序”
】编写Karma-Jasmine单元测试用例时出现“错误:没有路由器提供程序”【英文标题】:"Error:Noproviderforrouter"whilewritingKarma-Jasmineunittestcases【发布时间】:2017-04-2211:51:04【问题描述】:我们已经完成了一个angular2项目设置,并... 查看详情
如何在 Angular 7 中使用 Karma/Jasmine 为 App_Initializer 编写单元测试用例
】如何在Angular7中使用Karma/Jasmine为App_Initializer编写单元测试用例【英文标题】:howtowriteunittestcasesforApp_InitializerusingKarma/Jasmineinangular7【发布时间】:2019-06-3002:41:22【问题描述】:我已经在我的app.module.ts文件中导入了APP_INITIALIZER... 查看详情
如何为委托方法编写 GHunit 测试用例?
...elegateMethods?【发布时间】:2012-12-0617:24:07【问题描述】:我们可以为委托方法编写GHunit测试吗?我有一个委托方法,我正在尝试为该委托方法编写GHUnit测试。【问题讨论】:【参考方案1】:这取决于您要如何测试委托方法。如... 查看详情
如何使用 Kafka Streams 为应用程序编写单元测试用例
...ingKafkaStreams【发布时间】:2021-08-2114:52:06【问题描述】:我们正在构建一个将使用KafkaStreams的应用程序。我们正在寻找示例示例,该示例向我们展示了如何为场景编写测试用例,其中我们从Kafka拓扑中调用外部服务。基本上需要... 查看详情
java示例代码_我们如何为涉及与DB连接的方法编写单元测试
java示例代码_我们如何为涉及与DB连接的方法编写单元测试 查看详情
如何为登录屏幕ios swift编写测试用例?
...建测试用例。需要示例来启动测试用例。我是swift新手,我们将不胜 查看详情
Jasmine 中的单元测试用例
】Jasmine中的单元测试用例【英文标题】:UnitTestcaseinJasmine【发布时间】:2016-02-1203:21:33【问题描述】:我正在尝试为循环中的if条件编写一个测试用例,但是我没有将它作为过滤器的一部分。有什么方法可以测试循环中的if条件... 查看详情
如何为 UserDefaults 编写单元测试
】如何为UserDefaults编写单元测试【英文标题】:HowtowriteUnitTestforUserDefaults【发布时间】:2020-01-2202:08:59【问题描述】:我有2个函数,其中一个基本上检索用户默认值中的字符串,另一个将字符串写入用户默认值中。我无法理解... 查看详情
如何为使用两个数据库(mysql和mongo)的django项目编写单元测试
】如何为使用两个数据库(mysql和mongo)的django项目编写单元测试【英文标题】:Howtowriteunittestfordjangoprojectthatusingtwodatabase(mysqlandmongo)【发布时间】:2021-06-1006:04:54【问题描述】:我的django项目使用两种类型的数据库(mariadb和mong... 查看详情
如何为更长的网页编写 UI 手动测试用例?
】如何为更长的网页编写UI手动测试用例?【英文标题】:HowtowriteUImanualtestcaseforlongerwebpage?【发布时间】:2017-05-2312:26:32【问题描述】:我要为Web应用程序的主页编写UI测试用例。主页很长。如何为主页编写手动UI测试用例?这... 查看详情
如何为以下异常处理代码编写junit测试用例?
】如何为以下异常处理代码编写junit测试用例?【英文标题】:Howtowritejunittestcasesforbelowexceptionhandlingcode?【发布时间】:2021-12-1309:27:08【问题描述】:@PostMapping("/addCompany")publicCompanycreateCompany(@Valid@RequestBodyCompanycompany,Errorserrors)if( 查看详情
如何为 Spring 托管 bean 编写 Junit 测试用例?
】如何为Spring托管bean编写Junit测试用例?【英文标题】:HowtowriteJunittestcasesforSpringmanagedbean?【发布时间】:2017-01-1810:21:26【问题描述】:我是JUnit和Spring的新手。我有一个无法编写测试用例的Springbean。但是服务(业务),数据库... 查看详情
如何为 Rest 模板编写 Mockito Junit 测试用例?
】如何为Rest模板编写MockitoJunit测试用例?【英文标题】:HowtowriteMockitoJunittestcasesforResttemplate?【发布时间】:2019-06-2100:41:03【问题描述】:从服务中我使用RestTemplate调用第三方api。@RunWith(MockitoJUnitRunner.class)publicclassForceServiceTest@I... 查看详情