我试图决定JS测试代码覆盖率工具,但无法清楚地看到它们之间的差异.谷歌的热门歌曲是blanket.js,istanbul-js和JSCover.
任何人都可以提供有关它们与优点/缺点之间关键差异的任何信息吗?
还有其他有用的吗?
可能重复:
在AS3中初始化类变量的"正确"位置在哪里
我想知道是否有人知道更好地在它的变量声明或构造函数中实例化类?例如,这个:
protected var _errorHandler:ErrorHandler = new ErrorHandler();
Run Code Online (Sandbox Code Playgroud)
或这个:
protected var _errorHandler:ErrorHandler;
public function someClass() {
_errorHandler = new ErrorHandler();
}
Run Code Online (Sandbox Code Playgroud)
我认为这是一个小问题,但我希望我的代码尽可能强大和高效!
谢谢
克里斯
我试图回顾性地测试一个相当复杂但利用MVC的应用程序.我知道回顾性地应用单元测试并不理想,但我仍然相信通过重构现有代码是可能的.大多数情况下,不依赖于其他单元即不能对一个单元进行单元测试,即视图依赖于模型.
在这种情况下,单元测试的最佳方法是什么?使用真实模型或创建模拟模型更好吗?
在我的情况下使用真实模型的问题是该模型依赖于从XML获取数据的其他响应类,因此存在一系列依赖.这个模型有很多数据,因此使用它会容易得多,但也许我错过了这一点.
为简洁起见,我提供了一个应用程序的UML.

**编辑****
好的,如果我是正确的,最好在mock类中创建模拟数据吗?比如我有一个创建的视图类"PlaylistPanel",以无差错运行所需的数据模拟类"MockPlaylistPanelModel":
class MockPlaylistPanelModel extends Mock implements IPlaylistPanelModel
{
/**
* Return all playlist items
* @public
*/
public function get mainPlaylistItems():Vector.<PlaylistData>
{
var playData:Vector.<PlaylistData> = new Vector.<PlaylistData>;
var playlistResp:PlaylistData = new PlaylistData(0, "", "", 0, 0, 0, 0);
playData.push(playlistResp);
return playData;
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个问题,在AS3中使用Flash Builder 4使用带有内部setter的公共getter给出了错误"property is read only",如下所示:
public function get aVar():int{ return _aVar; }
internal function set aVar(value:int):void { this._aVar = value; }
Run Code Online (Sandbox Code Playgroud)
我使用了一个解决方法:
public function get aVar():int{ return _aVar; }
internal function setAVar(value:int):void { this._aVar = value; }
Run Code Online (Sandbox Code Playgroud)
这似乎是AS3中的一个错误,或者我错过了什么?有谁知道更好的解决方法?
谢谢
我有一个错误:
类型错误:element.isDisplayed 不是函数
执行以下代码时:
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.usingServer('http://localhost:4444/wd/hub')
.build();
driver.get('https://www.test.com');
driver.wait(until.elementIsVisible(By.id('someButton')), 5000);
Run Code Online (Sandbox Code Playgroud)
这是在我的本地机器上使用https://www.npmjs.com/package/selenium-webdriver并启动服务器:
网络驱动程序管理器启动
我的规格:
Mac OSX 塞拉利昂 10.12.6
铬 v60
我正在开发的网站正在使用 AJAX 加载页面,这会有所作为吗?
我想知道将整个类的实例传递给另一个类或者只是该类的特定属性是否更好.例如,如果我想在类B中的类A的height属性,我只将高度值传递给类B或类的整个实例,并在类B中使用classA.height吗?
我在具有灵活性和传递整个类或封装和传递特定属性之间徘徊.
谢谢
克里斯
我刚刚完成了Angular 2.0 Tour of Heroes教程,我添加了以下Gulp文件(本例简化)来构建它:
var del = require('del');
var gulp = require('gulp');
var ts = require('gulp-typescript');
var sourcemaps = require('gulp-sourcemaps');
var tsProject = ts.createProject('tsconfig.json');
gulp.task('transpile-ts', function() {
var tsResult = gulp.src(paths.allTypeScript)
.pipe(sourcemaps.init())
.pipe(ts(tsProject));
return tsResult.js
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(paths.dest_js));
});
Run Code Online (Sandbox Code Playgroud)
我想将一个Array.find方法添加到dashboard.component.ts中,如下所示:
ngOnInit() {
let newVar: Array<number> = new Array();
newVar.push(0);
newVar.push(1);
newVar.find(d => d == 1);
this._heroService.getHeroes()
.then(heroes => this.heroes = heroes.slice(1,5));
}
Run Code Online (Sandbox Code Playgroud)
当我运行命令"gulp transpile-ts"但是我收到以下错误:
app\dashboard.component.ts(26,16):错误TS2339:类型'number []'上不存在属性'find'.
我有es6-shim.d.ts,因此"find"方法确实存在于"interface Array"下.
此外,我尝试与Grunt运行相同的任务,同样的问题发生,所以这不是一个Gulp问题.
关于可能导致这种情况的任何想法?
apache-flex ×2
javascript ×2
actionscript ×1
ajax ×1
angular ×1
blanket.js ×1
ecmascript-6 ×1
flash ×1
flexunit4 ×1
istanbul ×1
java ×1
jquery ×1
mocking ×1
selenium ×1
testing ×1
typescript ×1
unit-testing ×1