茉莉测试三元条件
Jasmine Testing Ternary Conditionals
假设我们有以下JavaScript代码。
object = _.isUndefined(object) ? '' : aDifferentObject.property;
我们如何能够在Jasmine中为这两种场景编写测试?
它需要两个单独的描述吗?或者我们可以在测试本身中有一个三元条件吗?
谢谢!Jeremy
我将使用两个单独的描述,如
// System Under Test
function getObjectValue() {
return _.isUndefined(object) ? '' : aDifferentObject.property;
}
// Tests
describe('when object is undefined', function() {
it('should return empty string', function() {
expect(getObjectValue()).toBe('');
});
});
describe('when object is no undefined', function () {
it('should return property from different object', function () {
expect(getObjectValue()).toBe(property);
});
});
考虑以下情况(Angular JS/ES6/Jastsmine,Controller"as"语法)
代码:
Controller.toggleWidgetView = () => {
Controller.isFullScreenElement() ? Controller.goNormalScreen() : Controller.goFullScreen();
};
Jasmine测试案例:
describe('.toggleWidgetView()', function() {
it('should call goNormalScreen method', function() {
spyOn(Controller, 'isFullScreenElement').and.callFake(function(){
return true;
});
spyOn(Controller, 'goNormalScreen').and.callThrough();
Controller.toggleWidgetView();
expect(Controller.goNormalScreen).toHaveBeenCalled();
});
it('should call goFullScreen method', function() {
spyOn(Controller, 'isFullScreenElement').and.callFake(function(){
return false;
});
spyOn(Controller, 'goFullScreen').and.callThrough();
Controller.toggleWidgetView();
expect(Controller.goFullScreen).toHaveBeenCalled();
});
});
两个测试用例都通过了。基本上,我们调用"toggleWidgetView"方法两次,在每次调用中,条件都会像在现实世界中一样变化(true/false)。
相关文章:
- JavaScript 中三元条件和逻辑和运算符的运算符优先级
- 三元条件中出现意外的令牌中断
- 茉莉测试三元条件
- 返回三元条件下的新promise Q
- text()的jQuery条件语句(三元)
- 使用三元运算符有条件地在 AngularJS 模板中显示内容
- 将 html 附加到具有三元条件的 ReactJS 中的状态变量
- React Components 类名中的三元条件
- 您可以单独使用条件三元运算符吗?(JavaScript)
- JavaScript 三元 opretor 根据条件填充变量
- Javascript:内部的三元运算符“;如果“;条件
- 将三元条件运算符转换为if语句
- ngClick的三元条件
- 将$scope对象传递给ng-if和ng-class三元条件不工作
- 在方括号和圆括号中包装三元条件的区别
- 有可能从javascript中的条件(三元)操作符中获得两个值吗?
- (Javascript)为三元运算符问题设置多个条件
- javascript中不能DRY if-else(条件三元运算符)的简写
- jquery 三元条件运算符中的多个条件
- 更新三元条件变量角度