Wrapping Up

Here's a summary of what we learned in this chapter.

We'll cover the following

Summary

Targeted properties are still somewhat new. In this chapter, we’ve covered what targeted properties look like and explored how they work, including simulated annealing.

We’ve seen how to write a neighbor selection function, although how to write a good one is still not extremely obvious. But to help with that, we’ve seen how targeted properties used with search macros (EXISTS and NOT_EXISTS) within regular properties can make up for some less-than-ideal neighbor functions. The ability to nest searches this way also explains some of the more annoying weaknesses of targeted properties-—for instance, the inability to gather metrics and use complex generators.

What’s next

As we’ve seen in this chapter, it’s a great improvement to PropEr. It promises to allow some impressive searches that would usually be very difficult if not downright impossible to do with regular testing, and even with regular properties. We’re not yet done with the impressive material. The next part of the course introduces mechanisms for stateful properties.

Get hands-on with 1400+ tech skills courses.