<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="92155" data-post-id="92155">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="kokolegorille" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/kokolegorille/120/4784_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  kokolegorille
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>It is focusing on PropEr and PropCheck, and this book provides explanation for both Erlang and Elixir, but quoting the book…</p>
<blockquote>
<p>The concepts should not be hard to carry over from framework to framework in any case.</p>
</blockquote>
<p>StreamData is exclusive to Elixir.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="92155" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/13">Post #12</a>
	                </div>
	            </div>
              <div id="likers-container-92155" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="92155"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #12"></div>
  </section>
</div>
    <div class="postbit" id="92164" data-post-id="92164">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="david_ex" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/david_ex/120/9498_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  david_ex
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The book is divided into 3 parts:</p>
<ul>
<li>the basics</li>
<li>stateless properties in practice</li>
<li>stateful properties</li>
</ul>
<p>Parts 1 should be useful regardless of the tool used, as it covers more foundational knowledge (thinking in properties, etc.). Part 2 should still be useful if using StreamData, but you’ll obviously have to adapt the code. Part 3 cannot be used with StreamData, as StreamData doesn’t provide state checking (<a href="https://forum.elixirforum.com/t/streamdata-data-generation-and-property-testing-for-elixir/7715/12" class="inline-onebox" rel="nofollow">StreamData: data generation and property testing for Elixir - #12 by josevalim</a>)</p>
<p>You can probably get a good grasp of how helpful the book would be to you by reading <a href="http://propertesting.com" rel="noopener nofollow ugc">http://propertesting.com</a> which seems to cover most of part 1 in the book (it’s by the same author), although code samples are only in Erlang.</p>
<p>Hope this helps!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="92164" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/14">Post #13</a>
	                </div>
	            </div>
              <div id="likers-container-92164" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="92164"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #13"></div>
  </section>
</div>
    <div class="postbit" id="92183" data-post-id="92183">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="keathley" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/keathley/120/2652_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  keathley
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>As others have said, you should be able to apply a lot of the thinking with stream data although some of the operations just aren’t supported right now so I’d suggest going through the book using propcheck. We use both at work. StreamData for very basic generation of data and Proper for when we need more robust testing, model checking, etc.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="92183" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/15">Post #14</a>
	                </div>
	            </div>
              <div id="likers-container-92183" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="92183"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #14"></div>
  </section>
</div>
    <div class="postbit" id="92275" data-post-id="92275">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="baldmountain" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/baldmountain/120/2561_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  baldmountain
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks everyone. This is just the information I was looking for. <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="92275" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/16">Post #15</a>
	                </div>
	            </div>
              <div id="likers-container-92275" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="92275"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #15"></div>
  </section>
</div>
    <div class="postbit" id="102672" data-post-id="102672">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a href="https://twitter.com/mononcqc/status/1058002299480629250?s=21" class="onebox" target="_blank" rel="noopener nofollow">https://twitter.com/mononcqc/status/1058002299480629250?s=21</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="102672" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/17">Post #16</a>
	                </div>
	            </div>
              <div id="likers-container-102672" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="102672"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #16"></div>
  </section>
</div>
    <div class="postbit" id="110663" data-post-id="110663">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ferd" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/ferd/120/12731_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ferd
                  </h3>
		          </div>
						
			          <div class="user-title">
									<span>Author of Property-Based Testing with PropEr, LYSE, &amp; Erlang in Anger</span>
			          </div>
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi everyone,</p>
<p>I just wanted to announce that Property-Based Testing with PropEr, Erlang, and Elixir is now finally out!</p>
<p></p><div class="lightbox-wrapper"><a class="lightbox" href="https://forum.elixirforum.com/uploads/default/original/2X/4/40a50304743d47a26c2d4923a2dccdea2d2dc7e5.png" data-download-href="https://forum.elixirforum.com/uploads/default/40a50304743d47a26c2d4923a2dccdea2d2dc7e5" title="proper" rel="nofollow"><img src="https://forum.elixirforum.com/uploads/default/original/2X/4/40a50304743d47a26c2d4923a2dccdea2d2dc7e5.png" alt="proper" data-base62-sha1="9dS5QdX5kedSODJJrUyx6mZ9UOx" width="297" height="356"><div class="meta"><svg class="fa d-icon d-icon-far-image svg-icon" aria-hidden="true"><use href="#far-image"></use></svg><span class="filename">proper</span><span class="informations">297×356 36.1 KB</span><svg class="fa d-icon d-icon-discourse-expand svg-icon" aria-hidden="true"><use href="#discourse-expand"></use></svg></div></a></div><p></p>
<p>It is probably the friendliest introduction you can get to Property-Based Testing in this community, and also one of the best resource to bring you to a reasonably advanced level of skill.</p>
<p>If you’re interested in more details, please see any of:</p>
<ul>
<li>My blog post on the book: <a href="https://ferd.ca/property-based-testing-with-proper-erlang-and-elixir.html" class="inline-onebox" rel="noopener nofollow ugc">Property-Based Testing with PropEr, Erlang, and Elixir</a></li>
<li>The Pragmatic Programmers newsletter: <a href="https://media.pragprog.com/newsletters/2019-01-09.html" class="inline-onebox" rel="noopener nofollow ugc">Property-Based Testing with PropEr, Erlang, and Elixir, in print</a></li>
</ul>
<p>If you have previously read any of the beta copies, know that the final version now has both Erlang and Elixir code inline, at the same time (rather than Elixir in an appendix as in earlier beta copies). It was quite the fun challenge to make one book work for two languages, but I think you’ll find it works very well. If you only know either language, chances are you’ll feel comfortable reading both anyway before you’re halfway through.</p>
<p>And here’s also a twitter link in case any of you feels like making some noise on my behalf <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"> <a href="https://twitter.com/mononcqc/status/1083027123777036291" rel="noopener nofollow ugc">https://twitter.com/mononcqc/status/1083027123777036291</a></p>
<p>Thanks, and enjoy the read!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="110663" data-batch-url="/posts/batch_likers">
                        10
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/18">Post #17</a>
	                </div>
	            </div>
              <div id="likers-container-110663" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="110663"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-most-liked cat-most-liked" title="One of the top 3 liked posts in this thread!"></div>
  </section>
</div>
    <div class="postbit" id="110665" data-post-id="110665">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="AstonJ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/AstonJ/120/15_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  AstonJ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Congratulations Fred!</p>
<p>Thanks for all your hard work - not just on this book but all of them - I look forward to reading them all!</p>
<p><em>I have also liked and retweeted your tweet <img src="https://forum.elixirforum.com/uploads/default/original/2X/a/a1c41c89c299189a3f85edfeb4973563d8bac781.gif?v=15" title=":023:" class="emoji emoji-custom" alt=":023:" loading="lazy" width="20" height="20"></em></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="110665" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/19">Post #18</a>
	                </div>
	            </div>
              <div id="likers-container-110665" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="110665"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #18"></div>
  </section>
</div>
    <div class="postbit" id="113394" data-post-id="113394">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="daveboo" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  daveboo
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>THANK YOU for the discount!!!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="113394" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/20">Post #19</a>
	                </div>
	            </div>
              <div id="likers-container-113394" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="113394"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #19"></div>
  </section>
</div>
    <div class="postbit" id="127433" data-post-id="127433">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="elbrujohalcon" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/elbrujohalcon/120/1912_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  elbrujohalcon
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I just wrote an article about this book on <a href="https://forum.elixirforum.com/t/erlang-battleground-a-blog/18300/3" rel="nofollow">https://forum.elixirforum.com/t/erlang-battleground-a-blog/18300/3?u=elbrujohalcon</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="127433" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/21">Post #20</a>
	                </div>
	            </div>
              <div id="likers-container-127433" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="127433"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #20"></div>
  </section>
</div>
    <div class="postbit" id="159999" data-post-id="159999">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="zorn" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/zorn/120/11648_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  zorn
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>The Philly Elixir Group will be using Property-Based Testing with PropEr, Erlang, and Elixir for their next online book club, starting Jan 28th. If anyone outside Philly would like to join us, there are very welcome!</p>
<aside class="onebox allowlistedgeneric" data-onebox-src="https://www.meetup.com/ce506e4a-1cf8-49ec-aad3-9ec7a84c95bd/events/267962872/">
  <header class="source">
      <img src="https://secure.meetupstatic.com/next/images/favicon.ico" class="site-icon" alt="" width="48" height="48">

      <a href="https://www.meetup.com/ce506e4a-1cf8-49ec-aad3-9ec7a84c95bd/events/267962872/" target="_blank" rel="noopener nofollow ugc">Meetup</a>
  </header>

  <article class="onebox-body">
    <div class="aspect-image" style="--aspect-ratio:600/337;"><img src="https://secure.meetupstatic.com/photos/event/a/3/e/4/600_488201956.jpeg" class="thumbnail" alt="" width="600" height="337"></div>

<h3><a href="https://www.meetup.com/ce506e4a-1cf8-49ec-aad3-9ec7a84c95bd/events/267962872/" target="_blank" rel="noopener nofollow ugc">Online Book Club: Property-Based Testing with PropEr, Erlang, and Elixir,...</a></h3>

  <p>Join us for our weekly book club. We are currently reading Property-Based Testing with PropEr, Erlang, and Elixir by Fred Hebert.

https://pragprog.com/book/fhproper/proper</p>


  </article>

  <div class="onebox-metadata">
    
    
  </div>

  <div style="clear: both"></div>
</aside>
 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159999" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/property-based-testing-with-proper-erlang-and-elixir-pragprog/15339/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-159999" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159999"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/15339/load_more?page=3">Load more posts (3 remaining)</a>
</div></template></turbo-stream>