我无法让我的单元测试正常工作.我有一个$ 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) 我有一个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) 我有一个使用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()"
但也没有解决它.
任何帮助表示赞赏.谢谢!