diff --git a/src/serialization.rs b/src/serialization.rs index f610f6e..028de64 100644 --- a/src/serialization.rs +++ b/src/serialization.rs @@ -822,7 +822,7 @@ mod tests { } #[test] - fn errors() { + fn type_errors() { #[deriving(Encodable, Decodable, PartialEq, Show)] struct Foo { bar: int } @@ -839,4 +839,22 @@ mod tests { } } } + + #[test] + fn missing_errors() { + #[deriving(Encodable, Decodable, PartialEq, Show)] + struct Foo { bar: int } + + let mut d = Decoder::new(Table(map! { + })); + let a: Result = Decodable::decode(&mut d); + match a { + Ok(..) => fail!("should not have decoded"), + Err(e) => { + assert_eq!(e.desc.as_slice(), + "for field `bar` expected type `integer`, but \ + found no value"); + } + } + } }