Web Support
Mock HTTP exchanges for testing web applications in BoxLang CLI runtime without a web server.
Mock web server for testing BoxLang web applications in CLI runtime. Simulates HTTP requests/responses without needing an actual web server.
📋 Table of Contents
⚠️ Warning
DO NOT install this module into a BoxLang web-runtime! This module is for CLI runtime testing or mocking only and will cause JAR conflicts in web server environments. Not needed for CommandBox or MiniServer.
📦 Installation
⚙️ Configuration
Configure in your ModuleConfig.bx:
🚀 Quick Start
🔧 BIF Reference
mockServerGet()
Creates or retrieves cached mock server exchange.
Arguments:
webroot(string) - Web root pathhost(string) - Server host (default: localhost)port(numeric) - Server port (default: 8080)secure(boolean) - Enable HTTPS (default: false)force(boolean) - Force new instance (default: false)
Returns: MockHTTPExchange
mockRequestNew()
Creates mock request builder for fluent configuration.
Arguments:
method(string) - HTTP method (default: GET)path(string) - Request path (default: /)body(string) - Request bodycontentType(string) - Content type (default: text/html)headers(struct) - Request headersurlScope(struct) - URL parametersformScope(struct) - Form fieldscookieScope(struct) - CookiesPlus:
webroot,host,port,secure
Returns: MockHTTPExchange (builder pattern)
mockRequestRun()
Executes full mock request with all-in-one configuration.
Arguments:
Request:
path,method,pathInfo,queryString,contentType,body,urlScope,formScope,cookieScope,headersResponse:
responseStatus,responseContentType,responseBody,responseHeadersServer:
webroot,host,port,secure,force
Returns: MockHTTPExchange (executed)
💡 Examples
Basic GET Request
POST with JSON
Request with Authentication
Form Submission
🔗 Fluent API
MockHTTPExchange provides fluent methods for request configuration:
Request Configuration:
setRequestMethod(method)- Set HTTP methodsetRequestPath(path)- Set request pathsetRequestBody(body)- Set request bodysetRequestBodyJSON(struct)- Set JSON body (auto content-type)setRequestBodyXML(string)- Set XML body (auto content-type)setRequestContentType(type)- Set content type
Headers & Parameters:
addRequestHeader(name, value)- Add single headeraddRequestHeaders(struct)- Add multiple headersaddURLParam(name, value)- Add URL parameteraddURLParams(struct)- Add multiple URL parametersaddFormField(name, value)- Add form fieldaddFormFields(struct)- Add multiple form fieldsaddRequestCookie(name, value)- Add cookie
Execution & Inspection:
execute()- Execute the requestgetResponseBody()- Get response bodygetResponseStatus()- Get status codegetMockRequestHeaders()- Get request headersgetMockResponseHeaders()- Get response headersgetMockForm()- Get form scopegetMockURL()- Get URL scope
Test Utilities:
clearRequestData()- Reset request dataclearResponseData()- Reset response dataclearAll()- Reset everything
🧪 Testing Patterns
Test Isolation
Multiple Requests
Response Inspection
📚 Resources
Last updated
Was this helpful?
