더북(TheBook)

예제 2-32 인자가 타깃에 잘 전달되는지 테스트

소스 파일 2장\AOP\Aop_03_tests.js

describe(‘Aop’, function() {
var argPassingAdvice, // 타깃에 인자를 전달할 어드바이스
    argsToTarget;    // targetObj.targetFn에 전달할 인자들
// 다른 변수 줄임
 
beforeEach(function() {
  targetObj = {
    targetFn: function() {
    executionPoints.push(‘targetFn’);
    argsToTarget = Array.prototype.slice.call(arguments, 0);
  }
};
 
executionPoints = [];
 
argPassingAdvice = function(targetInfo) {
  targetInfo.fn.apply(this, targetInfo.args);
};
 
argsToTarget = [];
});
 
describe(‘Aop.around(fnName, advice, targetObj)’, function() {
it(‘어드바이스에서 타깃으로 일반 인자를 넘길 수 있다’, function() {
  Aop.around(‘targetFn’, argPassingAdvice, targetObj);
  targetObj.targetFn(‘a’, ‘b’);
  expect(argsToTarget).toEqual([‘a’,‘b’]);
  });
});
});

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.