Send Beginners mailing list submissions to
[email protected]
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
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Re: How to test "error"? (Hilco Wijbenga)
2. Re: How to test "error"? (Hilco Wijbenga)
----------------------------------------------------------------------
Message: 1
Date: Tue, 11 Jun 2019 22:24:09 -0700
From: Hilco Wijbenga <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] How to test "error"?
Message-ID:
<CAE1pOi0FmirpSYmgbUYO_4GuvxENXA+NG7M=t+jhvmi6xbt...@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
No, I don't think you should use Either/Maybe to anticipate bugs. If
your code could _legitimately_ fail (it's just something that follows
from your domain) then Maybe/Either are appropriate. Otherwise, some
sort of exception or "error" is more appropriate. E.g., if your domain
knowledge tells you that zeroes are impossible then you would not want
every division to return a Maybe just because division by zero is not
defined. _Because that should never happen._
On Tue, Jun 11, 2019 at 12:44 AM Michele Alzetta
<[email protected]> wrote:
>
> 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
> <[email protected]> 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
>> [email protected]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
Message: 2
Date: Tue, 11 Jun 2019 22:26:03 -0700
From: Hilco Wijbenga <[email protected]>
To: The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell <[email protected]>
Subject: Re: [Haskell-beginners] How to test "error"?
Message-ID:
<CAE1pOi3iTvaApOS6yr_6=obn50-t3hmdf51amfzvrv9y_65...@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"
Yes, "evaluate" does the trick. Thank you.
On Tue, Jun 11, 2019 at 2:39 AM Francesco Ariis <[email protected]> wrote:
>
> 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
> _______________________________________________
> Beginners mailing list
> [email protected]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 132, Issue 4
*****************************************