{"_id":"54485158c1b42e08005b82a1","__v":2,"user":"54471f91beb6320800da6f75","version":{"_id":"54471fc9e12a270800028adf","__v":10,"project":"54471fc9e12a270800028adc","createdAt":"2014-10-22T03:08:57.750Z","releaseDate":"2014-10-22T03:08:57.750Z","categories":["54471fc9e12a270800028ae0","5447b9e7b96a63140077d747","5447be130319802200fc0620","5447ed118d7af31a00dd411c","5447ed230319802200fc0702","5448524c4544c30800241f41","544854504544c30800241f4d","544854af4544c30800241f50","544854e74544c30800241f51","54485557c1b42e08005b82bf"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1.0"},"project":"54471fc9e12a270800028adc","category":{"_id":"5447be130319802200fc0620","project":"54471fc9e12a270800028adc","version":"54471fc9e12a270800028adf","__v":6,"pages":["5447be448d7af31a00dd406a","5447ea410319802200fc06df","5447ea600319802200fc06e3","5447ec908d7af31a00dd4115","5447ef6c0319802200fc070f","54485158c1b42e08005b82a1"],"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2014-10-22T14:24:19.959Z","from_sync":false,"order":1,"slug":"how-do-i","title":"How do I...?"},"is_link":false,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2014-10-23T00:52:40.147Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"basic_auth":false,"results":{"codes":[]},"try":true,"auth":"never","params":[],"url":""},"isReference":false,"order":5,"body":"> Specs should be easy-to-read and free from uninteresting concerns that hide the spec's intent. - *Me, just now* \n\nA noisy spec is a hard to maintain spec, and duplication in your specs will lead to pain down the road.  So how do you get those things out of your specs?  \n\nSpecsFor provides numerous mechanisms to help you.\n\nYou can create your own custom base spec classes that apply behaviors by hooking in to the [SpecsFor lifecycle](doc:specsfor-lifecycle). \n\n[Context classes](doc:intro-to-context-classes) will allow you to define behaviors in reusable bits, then apply them to your specs as needed.  \n\nThe [SpecsFor Convention System](doc:overview) is an even more powerful tool that will help move both noise and duplication out of your specs.","excerpt":"","slug":"reduce-duplication-and-noise-in-my-specs","type":"basic","title":"Reduce duplication and noise in my specs"}

Reduce duplication and noise in my specs


> Specs should be easy-to-read and free from uninteresting concerns that hide the spec's intent. - *Me, just now* A noisy spec is a hard to maintain spec, and duplication in your specs will lead to pain down the road. So how do you get those things out of your specs? SpecsFor provides numerous mechanisms to help you. You can create your own custom base spec classes that apply behaviors by hooking in to the [SpecsFor lifecycle](doc:specsfor-lifecycle). [Context classes](doc:intro-to-context-classes) will allow you to define behaviors in reusable bits, then apply them to your specs as needed. The [SpecsFor Convention System](doc:overview) is an even more powerful tool that will help move both noise and duplication out of your specs.