Re: Mock HTTP servers for unit tests. [message #185674 is a reply to message #185673] |
Wed, 30 April 2014 00:08 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 4/29/2014 7:56 PM, Daniel Pitts wrote:
> On 4/29/14 1:39 PM, Jerry Stuckle wrote:
>> On 4/29/2014 4:24 PM, Daniel Pitts wrote:
>>> On 4/29/14 11:51 AM, Jerry Stuckle wrote:
>>>> On 4/29/2014 1:23 PM, Daniel Pitts wrote:
>>>> > I'm developing some code which makes http requests from PHP. I'd
>>>> > like to
>>>> > be able to Unit Test my code as smoothly as possible.
>>>> >
>>>> > I've searched Google, and I see there is more than one solution
>>>> > available. I like the look of InterNations[1], but I wanted to ask
>>>> > this
>>>> > community if they've had experience with any of them, and whether that
>>>> > experience was positive or negative.
>>>> >
>>>> > Things I need:
>>>> > * Ability to validate a specific request was made, with a specific
>>>> > set of Headers.
>>>> > * Ability to provide a "mock" response, and validate my code can
>>>> > handle it.
>>>> >
>>>> > Things I really want:
>>>> > * Ability to send parallel requests (think curl_multi), and
>>>> > validate
>>>> > the requests are made in parallel.
>>>> > * Ability to delay one response for a specific amount of time, but
>>>> > have another response return earlier.
>>>> >
>>>> > Thanks,
>>>> > Daniel.
>>>> >
>>>> > [1] https://github.com/InterNations/http-mock
>>>>
>>>> Daniel,
>>>>
>>>> Normally when testing, I test against the site the code is written for.
>>>> If that's not possible (or I need further information than is
>>>> supplied
>>>> by the server, as you seem to need), I create my own test site and
>>>> write
>>>> server-side code to provide the appropriate information.
>>> I'm talking about Unit Tests... I need to be able to run them while
>>> offline, for instance. Integration tests would in theory be feasible
>>> against a site. Note that I support multiple sites and I'm wanting to
>>> unit-test some core functionality, not validate integration with any
>>> other sites.
>>
>> Good unit tests are always custom written, and are written against the
>> design specs (not the code).
>>
>>>>
>>>> You can see if the requests were made in parallel from the server logs.
>>>> Other information can be validated by the pages being requested.
>>> This doesn't solve my underlying problem. I want to write a Unit Test,
>>> not an Integration Test. My Unit Test should take a few seconds at most
>>> to run, and should not depend on an external service which may be
>>> unavailable.
>>>
>>> Thanks,
>>> Daniel.
>>>
>>
>> OK, then you need to write the unit test. Every one I have written in
>> many years of programming has been unique, because the code it's testing
>> is unique. I've seen drivers out there - but they really don't do much
>> more than run a series of tests in sequence; you still have to write the
>> individual tests. And I can do the same with a bash shell script (or
>> even a PHP or other scripting language script).
>>
>> And remember to test both valid and invalid values in your unit test.
> Very good advice, though it doesn't answer the question nor address the
> actual post I made in any way.
>
> I am very familiar with testing methodologies and technologies. Just
> most of my recent experience was with Java, where it's relatively easy
> to start a mock http server in a separate thread. Not as easy in PHP.
> I'm asking about Mock HTTP servers. Not about testing.
>
> Thanks,
> Daniel.
Make up your mind. Are you talking about mock http servers, or are you
talking about unit test? Unit test does NOT normally require an HTTP
server.
If it does, I create a test server as noted above.
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex(at)attglobal(dot)net
==================
|
|
|