Re: Mock HTTP servers for unit tests. [message #185675 is a reply to message #185673] |
Wed, 30 April 2014 00:11 |
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.
P.S. I create a test server no matter whether the test is for java, php,
..net, python or any other web scripting language.
But what you're looking for does not sound much like unit test. It
sounds more like module test - which requires a test server for the
client side of client-server scripts.
--
==================
Remove the "x" from my email address
Jerry Stuckle
jstucklex(at)attglobal(dot)net
==================
|
|
|