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. 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 <hilco.wijbe...@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: <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 <michele.alze...@gmail.com> 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 > <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 > > _______________________________________________ > Beginners mailing list > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ Message: 2 Date: Tue, 11 Jun 2019 22:26:03 -0700 From: Hilco Wijbenga <hilco.wijbe...@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: <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 <fa...@ariis.it> 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 > Beginners@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners ------------------------------ 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 4 *****************************************