小编Tim*_*thy的帖子

AngularJs Jasmine单元测试中的$ httpBackend

我无法让我的单元测试正常工作.我有一个$ scope数组,它开始是空的,但应该用$ http.get()填充.在真实环境中,阵列中大约有15个左右的对象,但是对于我的单元测试,我只抓了2.对于单元测试,我有:

expect($scope.stuff.length).toBe(2);
Run Code Online (Sandbox Code Playgroud)

但茉莉的错误是:预期0为2.

这是我的controller.js:

$scope.stuff = [];
$scope.getStuff = function () {
    var url = site.root + 'api/stuff';
    $http.get(url)
        .success(function (data) {
            $scope.stuff = data;
        })
        .error(function(error) {
            console.log(error);
        });
};
Run Code Online (Sandbox Code Playgroud)

我的controller.spec.js是:

/// <reference path="../../../scripts/angular-loader.min.js" />
/// <reference path="../../../scripts/angular.min.js" />
/// <reference path="../../../scripts/angular-mocks.js" />
/// <reference path="../../../scripts/angular-resource.js" />
/// <reference path="../../../scripts/controller.js" />
beforeEach(module('ui.router'));
beforeEach(module('ngResource'));
beforeEach(module('ngMockE2E'));
beforeEach(module('myApplication'));
var $scope;
var controller;
var httpLocalBackend;

beforeEach(inject(function ($rootScope, $controller, $injector) {
    $scope = $rootScope.$new();
    controller = $controller("StuffController", {
        $scope: $scope
    });
})); …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jasmine angularjs

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

MVC4单元测试NSubstitute无法找到从中返回的调用

我有一个MVC4 Web应用程序,我现在正在进行单元测试.它使用实体框架作为数据库部分.我正在使用NSubstitute来模拟数据库.这段代码基本上是从另一个工作中复制和粘贴的,工作正常,所以我希望我只是错过了一些非常简单的东西.

提前致谢!

SQL中的应用程序表:

AppID   | ApplicationName
----------------------------
1       | MyCoolApplication
2       | MyOtherApplication
Run Code Online (Sandbox Code Playgroud)

实体创建了Application类:

public class Application
{
    public int AppID { get; set; }
    public string ApplicationName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

单元测试的模拟部分如下所示:

var mockDb = Substitute.For<MyCoolApplicationsEntities>();

var applications = new List<Application>
{
    new Application {AppID = 1, ApplicationName = "MyCoolApplication"},
    new Application {AppID = 2, ApplicationName = "MyOtherApplication"},
};

var mockApplicationSet = Substitute.For<IDbSet<Application>, DbSet<Application>>();
mockApplicationSet.Provider.Returns(applications.AsQueryable().Provider);
mockApplicationSet.Expression.Returns(applications.AsQueryable().Expression);
mockApplicationSet.ElementType.Returns(applications.AsQueryable().ElementType);
mockApplicationSet.GetEnumerator().Returns(applications.AsQueryable().GetEnumerator());

mockApplicationSet.When(q => q.Add(Arg.Any<Application>()))
    .Do(q => applications.Add(q.Arg<Application>()));

mockApplicationSet.When(q => q.Remove(Arg.Any<Application>())) …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc unit-testing nsubstitute asp.net-mvc-4

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

禁用内部链接上的外部元素的ng-click

我有一个使用ui-router的网站,我有一张桌子,我在单元格上点击了一下,但在单元格内部有一个链接.单击链接时,我需要从单元格中禁用ng-click.

<div ng-click="click()" style="background: #d3d3d3">
  <a ui-sref="about">go to about page</a>
</div>
Run Code Online (Sandbox Code Playgroud)

当我单击此链接时,我希望它转到about页面,但不要调用click函数.这是一个plnkr:http://plnkr.co/edit/kE9CZYcYu1OPA9S0K3Jk?p = preview

这与我的实际站点略有不同,但这具有相同的行为(div而不是表).我试过添加,ng-click="$event.preventDefault()"但也没有解决它.

任何帮助表示赞赏.谢谢!

javascript angularjs angularjs-ng-click angular-ui-router

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