이것은 기본 기능이 아닙니다.
다음과 같이 사용자 정의 매처를 추가 할 수 있습니다.
JasmineExtensions.js
yourGlobal.addExtraMatchers = function () {
var addMatcher = function (name, func) {
func.name = name;
jasmine.matchers[name] = func;
};
addMatcher("toBeGreaterThanOrEqualTo", function () {
return {
compare: function (actual, expected) {
return {
pass: actual >= expected
};
}
};
}
);
};
사실상 여러분은 matcher에 대한 생성자를 정의하고 있습니다. 이것은 matcher 객체를 반환하는 함수입니다.
'부팅'하기 전에 포함하십시오. 기본 매처는 부팅시로드됩니다.
HTML 파일은 다음과 같아야합니다.
<!-- jasmine test framework-->
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-2.0.0/jasmine-html.js"></script>
<!-- custom matchers -->
<script type="text/javascript" src="Tests/JasmineExtensions.js"></script>
<!-- initialisation-->
<script type="text/javascript" src="lib/jasmine-2.0.0/boot.js"></script>
그런 다음 boot.js에서 jasmine이 정의 된 후 jasmine.getEnv () 전에 매처를 추가하는 호출을 추가합니다. Get env는 실제로 (약간 오해의 소지가있는) 설정 호출입니다.
매처는 Env 생성자에서 setupCoreMatchers에 대한 호출에서 설정됩니다.
/**
* ## Require & Instantiate
*
* Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference.
*/
window.jasmine = jasmineRequire.core(jasmineRequire);
yourGlobal.addExtraMatchers();
/**
* Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference.
*/
jasmineRequire.html(jasmine);
/**
* Create the Jasmine environment. This is used to run all specs in a project.
*/
var env = jasmine.getEnv();
샘플 테스트에 사용자 지정 매처를 추가하는 또 다른 방법을 보여 주지만 작동 방식은 .NET Framework를 사용하여 매 테스트 전에 매처를 다시 만드는 것 beforeEach
입니다. 그것은 꽤 끔찍한 것 같아서 대신이 접근 방식을 사용할 것이라고 생각했습니다.