我正在研究在Laravel中模拟一个保存功能进行测试.我有一个saving()我想要测试的事件.我尝试过使用,Eloquent::shouldReceive('save')但它给出了一个致命的错误:Fatal error: Cannot instantiate abstract class Illuminate\Database\Eloquent\Model.
这是我到目前为止的测试:
public function testRemoveAttributesOnSave(){
Eloquent::shouldReceive('save')->once()->andReturn(true);
$this->model->attributeA=1;
$this->model->attributeB=2;
$this->model->save();
$this->assertTrue(!isset($this->model->attributeB));
}
Run Code Online (Sandbox Code Playgroud)
我想写的是在测试中自我解释.我正在尝试处理模型中的验证,并保护一些属性在保存后不被包含.
如果我错了,请告诉我.
我有用户上传表格数据,然后我允许他们在它一直插入之前解析它.
例如,一个用户可以上传:
ID, NAME, PASSWORD, ADDRESS, EMAIL
10, Tim, foo, 123 S Main, tim@mailinator.com
11, Withers, foo, 123 S Main, tim@mailinator.com
//ETC//
Run Code Online (Sandbox Code Playgroud)
另一个用户可以不同地格式化他们的数据
FIRST_NAME, LAST_NAME, ID, PASSWORD, EMAIL
Tim, Withers, 10, 123, tim@mailinator.com
//You get the idea...
Run Code Online (Sandbox Code Playgroud)
我的应用程序获取数据并允许用户在最终上传到服务器之前指定哪些列具有必要的信息:
Column 0 => ID
Column 4 => Email
Column 2 => Password
Run Code Online (Sandbox Code Playgroud)
我想用a select来限制用户输入:
Which column is the First Name?
<select
ng-options="k as k for (k,v) in uploadData.row[0]"
ng-model="columnData.firstName">
</select>
Run Code Online (Sandbox Code Playgroud)
这很好用,但如果它们有超过9列,则选择框如下所示:
0
1
10
11
12
13
2
3
4
5 …Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Angular,我仍然试图了解它是如何工作的.我有两个关于ng-repeat列表的问题.我会先发布我的代码.
HTML
<div class="row">
<div class="span2">
<ul class="nav nav-pills nav-stacked">
<li ng-repeat="class in classes | orderBy:orderProp" ng-class="activeClass">
<a ng-click="loadRoster(class)">{{class.class_name}}</a>
</li>
</ul>
</div>
<div class="span2">
<ul class="nav nav-pills nav-stacked">
<li ng-repeat="student in students | orderBy:orderProp">
<a ng-click="enterPassword(student)">{{student.student_name}}</a>
</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
调节器
function ClassListCtrl($scope, $http) {
$scope.loadedList=[];
$scope.students=[];
$scope.activeClass='';
$scope.orderProp = 'alphabetical';
$http.get('data/class.json').success(function(data) {
$scope.classes = data;
});
$scope.loadRoster=function(classlist){
$scope.selectedClass=classlist;
$scope.activeClass='active';
if($scope.loadedList[classlist.class_id]== undefined){
$http.get('data/class_'+classlist.class_id+'.json').success(function(data){
$scope.loadedList[classlist.class_id]=data;
$scope.students=data;
});
}
$scope.students=$scope.loadedList[classlist.class_id];
}
$scope.studentClick=function(student){
}
}
Run Code Online (Sandbox Code Playgroud)
好的,这样可以很好地提取数据.我可以点击一个课程,然后加载该课程的学生.为了减少AJAX调用,我存储了那些被点击的内容,如果再次点击该类,它将从内存中获取它而不是进行调用.这很好,因为班级名册在很大程度上是静态的.
我试图让它加载一个默认的类名单(按字母顺序排在第一位)并将该列表项标记为活动状态.
其次,当他们单击列表项时,我想将该列表项更改为活动状态,并将其他列的项更改为空.我不知道该怎么做.现在看来,现在没有一个是活跃的,但是当我点击一个时,所有都变得活跃.
我正在开发一个严重依赖计时器的项目。我见过 1-2 个场景,其中计时器速度减慢,并且没有按应有的那样每秒滴答一次,但 1 秒/滴答需要 2-3 秒。通常这是由于整个计算机速度变慢并且变得非常滞后。我无法复制它,但一些用户报告了类似的发现,一旦他们重置计算机,一切都会正常。
我的问题是,超时/间隔如何工作?如果浏览器陷入困境,它会减慢计时器的速度,还是基于 CPU/系统时间?另外,是否还有其他人发生过类似的情况,如果是这样,我可以采取哪些措施来纠正这种情况(即使系统很慢,也让 15 秒计时器在 15 秒后实际触发一个事件)?