小编teo*_*one的帖子

Angular测试使用RouteParams的控制器

我需要测试一个$routeParams用于定义动作的Controller .也许这是一个测试问题,或者我编写控制器的方式是错误的,所以现在我无法编写测试.

这是我的控制器

angular.module('cmmApp')
.controller('UserCtrl', function ($scope, $location, $routeParams, $ionicLoading, $ionicPopup, Userservice) {

    //if a user id is set retrieve user information
    if(typeof $routeParams.id !== 'undefined'){

        var loader = $ionicLoading.show({content: "Retrieving user data"});

        var user = Userservice.get({id: $routeParams.id}).$promise;

        user.then(function(res){
            console.log(res);
            $scope.user = res.user;
            loader.hide();
        });
    }
    //else create an empty resource
    else {
        $scope.user = new Userservice;
    }
});
Run Code Online (Sandbox Code Playgroud)

基本上我只想在提供id的情况下加载资源$routeParams,否则创建一个空资源.

以下是测试:

'use strict';

describe('Controller: UserCtrl', function () {

  // load the controller's module
  beforeEach(module('cmmApp'));

  var UserCtrl, …
Run Code Online (Sandbox Code Playgroud)

routes params jasmine angularjs karma-runner

24
推荐指数
1
解决办法
1万
查看次数

量角器 - 空本地存储

我正在使用Protractor(使用Jasmine)来测试我的AngulaJs应用程序.

由于我的一些操作,我得到了一些保存在localStorage中的数据.现在我需要测试其他情况,所以我需要清空我的存储空间(或者更好地删除一些项目)但是如果我尝试运行:

browser.executeScript('localStorage.removeItem("config");');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

UnknownError: <unknown>: Failed to read the 'localStorage' property from 'Window': Storage is disabled inside 'data:' URLs.
  (Session info: chrome=35.0.1916.153)
  (Driver info: chromedriver=2.10.267517,platform=Mac OS X 10.9.2 x86_64)
Run Code Online (Sandbox Code Playgroud)

关于如何解决的任何想法?

提前致谢

local-storage protractor

23
推荐指数
4
解决办法
2万
查看次数

如何合并两个对象数组并连接值?

我有这两个对象数组

var client = [{
        "creazione": "1970-01-01",
        "value": 2
    }, {
        "creazione": "2014-03-12",
        "value": 4
    }, {
        "creazione": "2014-03-14",
        "value": 1
    }],
    order = [{
        "creazione": "1970-01-01",
        "value": 1
    }, {
        "creazione": "2014-03-13",
        "value": 5
    }, {
        "creazione": "2014-03-14",
        "value": 1
    }];
Run Code Online (Sandbox Code Playgroud)

我需要合并这两个数组来得到类似的东西:

 [{
     x: '1970-01-01',
     y: [2, 1]
 }, {
     x: '2014-03-12',
     y: [4, 0]
 }, {
     x: '2014-03-14',
     y: [1, 1]
 }, {
     x: '2014-03-13',
     y: [0, 5]
 }]
Run Code Online (Sandbox Code Playgroud)

简单来说,我需要检查是否a.creazione == b.creazione合并了键并将数值连接到数组(结果的第一行),否则如果它不同,则在数组的正确位置分配现有数组的值y(第三行结果).

PS:我需要得到这个结构,因为我正在使用Angular-Charts …

javascript arrays underscore.js lodash

6
推荐指数
2
解决办法
1万
查看次数

Wordpress Mailchimp表单自定义复选框

我将Mailchimp订阅插件用于wordpress(1.2.13版)。没关系,我只需要添加一个复选框即可接受隐私条款。我通过Mailchimp表单管理创建了该字段,除了需要根据需要定义它外,它可以在表单中显示和工作。在mailchimp中没有用于此的选项,我试图在html中添加一个简单的“ required”属性,但是没有起作用(按预期)。

有什么建议吗?

我还发现Mailchimp定义了在$var['req']与该字段名称相关联的数组/位置中是否需要该字段。但是我找不到在哪里可以访问此数组或如何向其中添加自定义字段。

forms wordpress plugins custom-fields mailchimp

5
推荐指数
1
解决办法
4057
查看次数

Yii计数模型与关系

我有一个模型Aziende,它与称为Annunci的花药模型相关(1:N),如下所示:

'annunci' => array(self::HAS_MANY,'Annunci','azienda_id'),
Run Code Online (Sandbox Code Playgroud)

我想算一下有多少记录确实有这种关系,在mySql中我会做:

SELECT count( * )
FROM `aziende` a
JOIN annunci an ON an.azienda_id = a.id
Run Code Online (Sandbox Code Playgroud)

我怎么能用Yii AR模型做到这一点?

PS:我试图找出条件查询,但我找不到自己的方式.

php mysql count relation yii

5
推荐指数
2
解决办法
4537
查看次数

Angular JS-连接到Woocommerce OAuth v1

我正在尝试(未成功)对其余服务进行身份验证。

我正在尝试使用该库来创建此处列出的所有参数并以这种方式创建请求:

$scope.oauth = new OAuth({
    consumer: {
        public: 'ck_d34c32d9c7f6fc1ddb6e85879fc4de89',
        secret: 'cs_1867e5e54ce054dde7cf463ad78ee6f9'
    },
    signature_method: 'HMAC-SHA1'
});

var request_data = {
        url: 'http://belfiore.link-me.it/wc-api/v1/orders',
        method: 'GET',
    }
    $scope.data = $scope.oauth.authorize(request_data);

    $scope.url = rawurlencode(request_data.url) + "&" + 
                "oauth_consumer_key"+"%3D"+rawurlencode($scope.data.oauth_consumer_key)+
                "%26"+"oauth_nonce"+"%3D"+rawurlencode($scope.data.oauth_nonce)+
                "%26"+"oauth_signature_method"+"%3D"+rawurlencode($scope.data.oauth_signature_method)+
                "%26"+"oauth_timestamp"+"%3D"+rawurlencode($scope.data.oauth_timestamp)+
                "%26"+"oauth_signature"+"%3D"+rawurlencode($scope.data.oauth_signature);

    var call = $http.get($scope.url);
    call.success(function(res) {
        console.log(res);
    });
    call.error(function(res) {
        console.log(res);
    });
Run Code Online (Sandbox Code Playgroud)

但我不断得到这个答案:

"Cannot GET /http%3A%2F%2Fbelfiore.link-me.it%2Fwc-api%2Fv1%2Forders&amp;oauth_consumer_key%3Dck_d34c32d9c7f6fc1ddb6e85879fc4de89%26oauth_nonce%3DwkeLtFTh6WAuxDQGqnpzxAWYOQiHnHSr%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D10%26oauth_signature%3DjFhPbKHnvMEvYf20w1vN3TAV5Ds%3D"

有什么帮助吗?我用Google搜索找到了OAuth1的一些教程或角度就绪的库,但我什么也没发现。

提前致谢

javascript wordpress oauth angularjs

5
推荐指数
1
解决办法
1814
查看次数

Django rest swagger和json定义

我是Django的新手,目前正在从事使用Django-rest-framework的项目,并使用Swagger通过django-rest-swagger包创建了文档。

我正在尝试查找(或生成)swagger.json定义文件,对此包可以在哪里找到任何想法?我想用它来生成客户端代码。

谢谢

django json swagger django-rest-framework

5
推荐指数
1
解决办法
1205
查看次数

Yeoman,Angular Generator和Karma Test无法正常工作

我正在尝试使用Yeoman和角度生成器来启动一个新的应用程序.

我运行此命令(根据文档)启动一个新的应用程序:

yo angular my-app-name

如果我运行,所有依赖项都已下载

grunt serve

我的基本应用程序显示在浏览器中,一切看起来都很好.我尝试运行时问题开始:

grunt test

我收到一个错误: Warning: Task "karma" not found. Use --force to continue.

所以我添加了这些行:

"grunt-karma": "*",
"generator-karma": "*"
Run Code Online (Sandbox Code Playgroud)

在我的packeage.json文件中,删除该node_modules文件夹并运行`npm install.我急于解决这个问题,但现在我得到了错误:

loading "grunt-karma.js" tasks...ERROR
>> Error: Cannot find module 'socket.io-client'
Warning: Task "karma" not found. Use --force to continue.

Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)

我试过谷歌一点但我找不到任何关于.我正在运行MacOsX 10.8.5和节点v0.10.0.有什么建议吗?

提前致谢

node.js angularjs gruntjs yeoman karma-runner

4
推荐指数
1
解决办法
4907
查看次数

Javascript:转换代码字符串并返回

假设我有这样的代码:

var cfg = {
  config: {
    fields: {
      name: {
        type: 'text'
      },
      age: {
        type: 'number'
      }
    },
    actions: [
      {
        label: 'Print',
        cb: (model) => {
          console.log(model);
        }
     }
   ]
  },
  data: {name: 'Jhon', age: 23}
}
Run Code Online (Sandbox Code Playgroud)

我想将其转换为字符串(以让用户编辑它),然后将其转换回可执行代码,知道如何实现这一点吗?

我尝试使用JSON.stringifyandJSON.parse但这当然会剥夺这些功能。.toStringreturns "[object Object]",迭代对象并.toString在值是字符串、函数或数字时进行调用,还有其他想法吗?

javascript string type-conversion ecmascript-6

3
推荐指数
1
解决办法
8375
查看次数

Python-模拟导入字典

在要测试的代码顶部,我有一个类似的导入:

from resources import RESOURCES
Run Code Online (Sandbox Code Playgroud)

RESOURCES值字典在哪里。

如何在测试中模拟它?

我想要的是,无论真实模块中的内容是什么,都返回一个众所周知的字典。

例如,在一项测试中,我希望RESOURCES成为:

{
  'foo': 'bar'
}
Run Code Online (Sandbox Code Playgroud)

而在另一个测试中,我希望它是:

{
  'something': 'else'
}
Run Code Online (Sandbox Code Playgroud)

python dictionary unit-testing patch mocking

3
推荐指数
1
解决办法
2347
查看次数

以编程方式向docker compose项目添加服务

我有一个基于Docker和orchestrated的组件的项目docker-compose.其中一些是可选的,可以在运行时添加.

我可以考虑两种方法来实现这一目标:

  • 创建一个新的serviceA.yml撰写文件并将其作为单独的项目运行
  • 添加serviceA到我的基地compose.yml并再次运行它

这样做的首选方法是什么?

我也看到你可以将docker-compose文件与extend关键字结合起来,但我认为这不适合,因为我可以在运行时添加可变数量的服务.

docker microservices docker-compose

3
推荐指数
1
解决办法
1049
查看次数

量角器从dom中移除元素

因为我们正在使用的模板有一种奇怪的(而不是很酷的)行为,所以我一直坚持使用量角器进行测试.

在页面加载时,模板具有覆盖层,这将在1秒后以这种方式隐藏:

$(document).ready(function(config){
    setTimeout(function(){
       $('.page-loading-overlay').addClass('loaded');
       $('.load_circle_wrapper').addClass('loaded');
    },1000);
});
Run Code Online (Sandbox Code Playgroud)

*这对我来说太可怕了(不想对此发表评论)

无论如何,我的测试因为运行速度超过一秒而被打破,他们抛出了这个错误:

UnknownError: unknown error: Element is not clickable at point (463, 625). Other element would receive the click: <div class="page-loading-overlay loaded">...</div>
Run Code Online (Sandbox Code Playgroud)

因为显然是接收点击的叠加层.

我发现在测试中设置超时的解决方法,但这确实会减慢我的套件和CI/CD进程.并使测试代码混乱.

这是代码:

it('should test something', function(){
    setTimeout(function(){
        // test code
    }, 1000);
});
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何方法可以从beforeEach语句中删除DOM中的元素,以完全删除叠加层,因为我不想测试它,我不担心它是否破坏了.

有什么建议吗?

testing dom angularjs protractor e2e-testing

1
推荐指数
1
解决办法
1839
查看次数