Coldbox.system.testing.BaseTestCase
을 확장하는 테스트 내에서 Coldbox RequestContext 객체를 쉽게 조롱 할 수 있습니다.
테스트에서 다음 변수를 설정해야합니다. this.loadColdbox=true
다음에 setup()
을 호출 할 때마다 super.beforeAll()
메서드를 호출 한 후 컨텍스트가 다시 작성됩니다.
그런 다음 RequestContext는 getRequestContext()
메서드와 함께 사용할 수 있습니다. 여기에 요청 getHTTPMethod()
기능을 조롱의 예이다 (I는 일반적으로 서로 다른 HTTP 동사에 응답하도록 구성되어 API 방법을 조롱하기 위해이 방법을 사용) :
:
이
function newEventArgs(method = "GET") {
//rebuild the context
setup();
//mock the context
var event = getRequestContext();
prepareMock(event).$("getHTTPMethod", arguments.method);
var rc = event.getCollection();
var prc = event.getCollection(private=true);
prc.response = getWirebox().getInstance("APIResponse");
return {
"event":event,
"rc":rc,
"prc":prc
};
}
그럼 당신이 만드는 방법과 같이 테스트 할 수
it("Tests Widgets.create", function(){
var testWidget = {
"name" : "Test Widget"
};
var eventArgs = newEventArgs("POST");
structAppend(eventArgs.rc, testWidget, true);
var event = execute(
route="/api/v1/widgets"
eventArgs=eventArgs
);
expect(event.getPrivateValue("response").getStatusCode()).toBe(201, "Event response did not return the proper status code.");
});
불행히도 귀하의 질문에 답변을 드릴 수 없지만 설명서를 보시면 도움이 될 것입니다 - [모의 객체 만들기] (https://testbox.ortusbooks.com/content/mockbox/creating_a_mock_object.html) –