This method enables the following syntax:
This method enables the following syntax:
book must have ('title ("A Tale of Two Cities")) ^
This class has an apply method that will produce a HavePropertyMatcher[AnyRef, Any].
The implicit conversion method, convertSymbolToHavePropertyMatcherGenerator, will cause the
above line of code to be eventually transformed into:
book must have (convertSymbolToHavePropertyMatcherGenerator('title).apply("A Tale of Two Cities"))
This class is part of the ScalaTest matchers DSL. Please see the documentation for
Matchersfor an overview of the matchers DSL.This class is used as the result of an implicit conversion from class
Symbol, to enable symbols to be used inhave ('author ("Dickens"))syntax. The name of the implicit conversion method isconvertSymbolToHavePropertyMatcherGenerator.Class
HavePropertyMatcherGenerator's primary constructor takes aSymbol. Theapplymethod uses reflection to find and access a property that has the name specified by theSymbolpassed to the constructor, so it can determine if the property has the expected value passed toapply. If the symbol passed is'title, for example, theapplymethod will use reflection to look for a public Java field named "title", a public method named "title", or a public method named "getTitle". If a method, it must take no parameters. If multiple candidates are found, theapplymethod will select based on the following algorithm:TestFailedException, because no candidates foundgetTitle()getTitle()title()title()title()getTitle()title()(this can occur whenBeanPropertyannotation is used)titletitletitlegetTitle()getTitle()titletitle()title()titletitle()getTitle()title()(this can occur whenBeanPropertyannotation is used)