Send Beginners mailing list submissions to
        beginners@haskell.org

To subscribe or unsubscribe via the World Wide Web, visit
        http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
        beginners-requ...@haskell.org

You can reach the person managing the list at
        beginners-ow...@haskell.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."


Today's Topics:

   1.  How to test "error"? (Hilco Wijbenga)
   2. Re:  How to test "error"? (Michele Alzetta)
   3. Re:  How to test "error"? (Francesco Ariis)


----------------------------------------------------------------------

Message: 1
Date: Mon, 10 Jun 2019 20:44:30 -0700
From: Hilco Wijbenga <hilco.wijbe...@gmail.com>
To: Haskell Beginners <beginners@haskell.org>
Subject: [Haskell-beginners] How to test "error"?
Message-ID:
        <CAE1pOi3bKP3KmOZteQMGYmkfx1o=awdqjyq17yw-slyzkke...@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"

Hi all,

I have a function that may call "error" if the input represents a bug
in my program. (Think something like PositiveInt -1; this should never
happen so Maybe or Either are not applicable.)

f :: Whatever
f = error "This should never happen."

spec :: Spec
spec =
    describe "f" $
        it "error" $
            return f `shouldThrow` anyErrorCall

The above does not work, I get "did not get expected exception:
ErrorCall". Using "anyException" doesn't work either.

How can I write a test for this? And (assuming I can get the test to
work), how do I check that the error message is indeed what I expect?

Cheers,
Hilco


------------------------------

Message: 2
Date: Tue, 11 Jun 2019 09:43:53 +0200
From: Michele Alzetta <michele.alze...@gmail.com>
To: The Haskell-Beginners Mailing List - Discussion of primarily
        beginner-level topics related to Haskell <beginners@haskell.org>
Subject: Re: [Haskell-beginners] How to test "error"?
Message-ID:
        <CANhs-xCpDWcAmRVorfQwaJq=xmqbrojnpj-dwm4ub_4sqk1...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"

As beginner to beginner, so take this with a kg of salt  ... isn't what
you're looking for a construction of the Either sort?

That way you get Right and Left and you can check for Left.





Il giorno mar 11 giu 2019 alle ore 05:45 Hilco Wijbenga <
hilco.wijbe...@gmail.com> ha scritto:

> Hi all,
>
> I have a function that may call "error" if the input represents a bug
> in my program. (Think something like PositiveInt -1; this should never
> happen so Maybe or Either are not applicable.)
>
> f :: Whatever
> f = error "This should never happen."
>
> spec :: Spec
> spec =
>     describe "f" $
>         it "error" $
>             return f `shouldThrow` anyErrorCall
>
> The above does not work, I get "did not get expected exception:
> ErrorCall". Using "anyException" doesn't work either.
>
> How can I write a test for this? And (assuming I can get the test to
> work), how do I check that the error message is indeed what I expect?
>
> Cheers,
> Hilco
> _______________________________________________
> Beginners mailing list
> Beginners@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://mail.haskell.org/pipermail/beginners/attachments/20190611/45e2c350/attachment-0001.html>

------------------------------

Message: 3
Date: Tue, 11 Jun 2019 11:39:09 +0200
From: Francesco Ariis <fa...@ariis.it>
To: beginners@haskell.org
Subject: Re: [Haskell-beginners] How to test "error"?
Message-ID: <20190611093909.zbbu6ynnjkoxc...@x60s.casa>
Content-Type: text/plain; charset=us-ascii

Hello Hilco,

On Mon, Jun 10, 2019 at 08:44:30PM -0700, Hilco Wijbenga wrote:
> f :: Whatever
> f = error "This should never happen."
> 
> spec :: Spec
> spec =
>     describe "f" $
>         it "error" $
>             return f `shouldThrow` anyErrorCall

    import qualified Control.Exception as E

and

    E.evaluate tt' f `shouldThrow` anyErrorCall

should work. Does this work?
-F


------------------------------

Subject: Digest Footer

_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners


------------------------------

End of Beginners Digest, Vol 132, Issue 3
*****************************************

Reply via email to