I got a piece of code like below:
if timeoutErr, ok := err.(net.Error); ok && timeoutErr.Timeout() {
// Some code that need to test
}
How could I generate a error that can match the condition here so the code will flow through the if.
I got a piece of code like below:
if timeoutErr, ok := err.(net.Error); ok && timeoutErr.Timeout() {
// Some code that need to test
}
How could I generate a error that can match the condition here so the code will flow through the if.
Error
is an interface:
type Error interface {
error
Timeout() bool // Is the error a timeout?
Temporary() bool // Is the error temporary?
}
To implement it, you'll need to do something like (untested):
type MyError struct {
error
}
func (e MyError) Timeout() bool {
return true
}
func (e MyError) Temporary() bool {
return true
}
func (e MyError) Error() string {
return ""
}
Note that you have to implement Error()
too because Error
embeds error
.