Pau*_*aul 4 unit-testing matcher jasmine
在Jasmine测试中每个"it"有多个匹配器是否正确,否则它们会相互干扰?
我想将这些测试合并为一个:
var mapper = ......... ;
it('should be reviewed if not admin and language not set', inject(function() {
scope.globals.isAdmin = false;
scope.globals.language = '';
mapper.updatedOn.setYear(2013);
expect(scope.isReviewed(mapper)).toBe(true);
}));
it('should disregard mapper date if not admin and language not set', inject(function() {
scope.globals.isAdmin = false;
scope.globals.language = '';
mapper.updatedOn.setYear(2015);
expect(scope.isReviewed(mapper)).toBe(true);
}));
it('should be reviewed if admin and mapper is older', inject(function() {
scope.globals.isAdmin = true;
scope.globals.language = '';
mapper.updatedOn.setYear(2013);
expect(scope.isReviewed(mapper)).toBe(true);
}));
it('should be not reviewed if admin and mapper is newer', inject(function() {
scope.globals.isAdmin = true;
scope.globals.language = '';
mapper.updatedOn.setYear(2015);
expect(scope.isReviewed(mapper)).toBe(false);
}));
it('should be reviewed if not admin, language is set and mapper is older', inject(function() {
scope.globals.isAdmin = false;
scope.globals.language = 'de';
mapper.updatedOn.setYear(2013);
expect(scope.isReviewed(mapper)).toBe(true);
}));
it('should be not reviewed if not admin, language is set and mapper is newer', inject(function() {
scope.globals.isAdmin = false;
scope.globals.language = 'de';
mapper.updatedOn.setYear(2015);
expect(scope.isReviewed(mapper)).toBe(false);
}));
Run Code Online (Sandbox Code Playgroud)
这可能/合理吗?
您可以根据需要为每个测试提供尽可能多的断言.但是,当测试失败时,不得不阅读很多内容.因为你必须扫描数十行来弄清楚什么是错误的,而不是仅仅看到'should be not reviewed if not admin, language is set and mapper is newer'
失败.
顺便说一句.在你的情况下你可以写一个辅助函数,所以你没有那么多的样板:
var admin = true;
var notAdmin = false
init(isAdmin, language, year) {
scope.globals.isAdmin = isAdmin;
scope.globals.language = language;
mapper.updatedOn.setYear(year);
}
it('should be not reviewed if not admin, language is set and mapper is newer', inject(function() {
init(admin, 'de', 2015)
expect(scope.isReviewed(mapper)).toBe(false);
}));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4761 次 |
最近记录: |