7 Aug 2012 20:18
Re: HUnit and table-driven tests
Matthew <wonderzombie <at> gmail.com>
2012-08-07 18:18:50 GMT
2012-08-07 18:18:50 GMT
On Tue, Aug 7, 2012 at 12:51 AM, Dean Herington
<heringtonlacey <at> mindspring.com> wrote:
> At 4:30 PM -0700 8/5/12, Matthew wrote:
>>
>> On Sun, Aug 5, 2012 at 12:32 AM, Henk-Jan van Tuyl <hjgtuyl <at> chello.nl>
>> wrote:
>>>
>>> On Sun, 05 Aug 2012 03:21:39 +0200, Matthew <wonderzombie <at> gmail.com>
>>> wrote:
>>>
>>>> I've got a function which takes in two chars, describing a playing
>>>> card and a suit. An example would be 4C or TH for a 4 of Clubs or a
>>>> Ten of Hearts. I need to be able to compare the ranks of a card (e.g.
>>>> a King is 13), so a Card is a tuple of rank and suit. The function
>>>> which parses a Card is type String -> Maybe Card.
>>>>
>>>> I'm writing unit tests for this using HUnit, and ideally I'd go with a
>>>> table-driven[1] approach, where each test case is a tuple of the input
>>>> and the expected output. (Possibly I could expand this to a triple, or
>>>> simply a list, to allow for an error message for each test case.) Then
>>>> all the test function has to do is run through each case and assert as
>>>> necessary. Example: [("TH", Just (Hearts, 10)), ("XH", Nothing)].
>>>
>>>
>>>
>>> A simple solution:
>>>
>>>> parseCard :: String -> Maybe Card
>>>> parseCard string = <your function to test>
>>>> test :: Bool
(Continue reading)
RSS Feed