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


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="germsvel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/germsvel/120/26845_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  germsvel
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I also recently added a <a href="https://www.tddphoenix.com/troubleshooting/" rel="noopener nofollow ugc">Troubleshooting</a> chapter, mostly to deal with common ChromeDriver issues people have been running into. If anyone runs into ChromeDriver issues, give it a look.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="196480" 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/test-driven-development-with-phoenix-self-published-free/35154/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-196480" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="196480"
                     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 #31"></div>
  </section>
</div>
    <div class="postbit" id="196642" data-post-id="196642">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="germsvel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/germsvel/120/26845_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  germsvel
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/mstibbard" rel="nofollow">@mstibbard</a> I just added a section in the Authentication chapter that addresses the issue you found. Thanks so much for pointing it out! <img src="https://forum.elixirforum.com/images/emoji/apple/pray.png?v=15" title=":pray:" class="emoji" alt=":pray:" loading="lazy" width="20" height="20"></p>
<p><a href="https://www.tddphoenix.com/authentication/#testing-invalid-authentication-credentials" class="onebox" target="_blank" rel="noopener nofollow ugc">https://www.tddphoenix.com/authentication/#testing-invalid-authentication-credentials</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="196642" 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/test-driven-development-with-phoenix-self-published-free/35154/33">Post #32</a>
	                </div>
	            </div>
              <div id="likers-container-196642" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="196642"
                     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 #32"></div>
  </section>
</div>
    <div class="postbit" id="198132" data-post-id="198132">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey, thank you for taking the time to write this book!</p>
<p>I’ve got some experience programming but never tried true TDD, so after listening to the podcast episode I was curious about how strict one could get while doing TDD and decided to give your book a go.</p>
<p>I’m now at the point where ExMachina is introduced for the first time in the book, and would like to leave some (unsolicited obviously!) feedback about a little thing that bothers me in the few pages I’ve read so far: I guess I would appreciate at the start of each chapter/section a little summary of what the goal of the chapter is and how we’re going to go about it. I feel like I’m blindingly following the instructions like “copy this” and “create that file” and “add that dependency” without really understanding why, and I find that I frequently have to stop or skip a few paragraphs ahead to see where it is that these instructions will lead to and it is somewhat distracting to me.</p>
<p>Anyway, please don’t let any negative feedback bog you down- good on you for going all the way of creating a book to share your knowledge. Much appreciated!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198132" 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/test-driven-development-with-phoenix-self-published-free/35154/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-198132" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198132"
                     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 #33"></div>
  </section>
</div>
    <div class="postbit" id="198394" data-post-id="198394">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>OK. I’ve now gone through a bigger chunk of the book (adding authorization now) and I believe I understand the style better: essentially making a plan and executing it goes somewhat against the TDD style this book looks to impart (not sure if everyone practices TDD the same way so I’m reluctant to generalize), as the whole point is to “describe what you need to do” in a feature test, and let failing tests guide the implementation. I imagine having laid out a “master plan” of what will be attempted for each chapter would “spoil” this TDD approach and readers would be perhaps tempted to jump ahead and work on the code first instead of the tests first.</p>
<p>I guess this is me trying to say that I was wrong in my earlier assessment- perhaps what’s missing instead is a re-affirmation of trusting in the process at the start of each chapter to quell this feeling of unease some readers (like me) might have. Again, good job <a class="mention" href="/u/germsvel" rel="nofollow">@germsvel</a>!</p>
<p>PS: based on the talk in the podcast (<em>and</em> personal experience now <img src="https://forum.elixirforum.com/images/emoji/apple/blush.png?v=15" title=":blush:" class="emoji" alt=":blush:" loading="lazy" width="20" height="20">)  the editor setup is important for TDD to make the whole cycle faster, so by following these posts here (thank you <a class="mention" href="/u/atomkirk" rel="nofollow">@atomkirk</a> &amp; <a class="mention" href="/u/robottokauf3" rel="nofollow">@robottokauf3</a>- I hope I’ve tagged the right people)  <a href="https://atomkirk.com/2020-07-01-elixir-tdd-in-vscode/" rel="noopener nofollow ugc">Elixir TDD in VSCode</a> and <a href="https://rok3.me/blog/my-elixir-visual-studio-code-setup/" rel="noopener nofollow ugc">Visual Studio Code Setup For Elixir Development</a> I wanted to share my VSCode setup for running tests:</p>
<ul>
<li><code>ctrl + t; f</code>: run all tests in current file (useful to start the cycle)</li>
<li><code>ctrl + t; ctrl + f</code>: run all failing tests (going with the flow this ends up running the latest test being worked on)</li>
<li><code>ctrl + t, t</code>: run all tests (running this during the refactor step to make sure nothing’s missed)</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198394" 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/test-driven-development-with-phoenix-self-published-free/35154/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-198394" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198394"
                     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 #34"></div>
  </section>
</div>
    <div class="postbit" id="198643" data-post-id="198643">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="germsvel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/germsvel/120/26845_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  germsvel
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thanks for the suggestions <a class="mention" href="/u/bottlenecked" rel="nofollow">@bottlenecked</a>.</p>
<blockquote>
<p>at the start of each chapter/section a little summary of what the goal of the chapter is and how we’re going to go about it. I feel like I’m blindingly following the instructions</p>
</blockquote>
<p>I think this is great feedback. I <em>don’t</em> want the book to feel that way.</p>
<blockquote>
<p>essentially making a plan and executing it goes somewhat against the TDD style this book looks to impart</p>
</blockquote>
<p>I don’t think having a master plan goes against BDD/TDD. In fact, I think not considering design or approach is a misunderstanding of TDD for a lot of people. We can’t completely check out brains at the door and follow errors. We have to consider the design.</p>
<p>When I go through each chapter, I have a master plan in my head, but I imagine I’m just not communicating it enough. So, I think your original feedback is very helpful.</p>
<p>One question I had, how detailed a plan are you thinking of? I have something in my head when we talk about a master plan, but I wonder if its the same thing you’re thinking.</p>
<p>If you have a sense of what kind of master plan would be helpful, let me know. And thanks again for the feedback.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198643" 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/test-driven-development-with-phoenix-self-published-free/35154/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-198643" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198643"
                     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 #35"></div>
  </section>
</div>
    <div class="postbit" id="198672" data-post-id="198672">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hey, thanks for not taking this the wrong way <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>
<p>I only mentioned planning may go against the TDD principles because sometimes to learn something new one has to unlearn some habits, and although having an attack plan is required in the ‘real world’, for the purposes of this book and in order to get the reader to trust in the process and not running off to implement things ‘the old way’ perhaps this style of writing makes more sense. I don’t know really. Happy we discuss this actually!</p>
<p>OK, as to the master plan I was thinking of having before each chapter: a few words on what we’re going to achieve and how. E.g. ‘to create chatrooms we’re going to need a page listing all chatrooms and another page with a form for creating a new chatroom. Also the chatroom page itself, where users will later be able to actually chat. After all is said and done, we’re going to end up with N controllers/views/templates and M schemas. We’re also going to introduce such-and-such library that will help us with this-and-that’.</p>
<p>Anyway, I hope you keep on enjoying the process of writing a book and not getting discouraged by randoms on the internets; I’ve already learned a lot and made me reconsider a few things about tests I’ve written in the past.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198672" 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/test-driven-development-with-phoenix-self-published-free/35154/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-198672" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198672"
                     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 #36"></div>
  </section>
</div>
    <div class="postbit" id="198714" data-post-id="198714">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Why did we pick <code>Doorman</code> over <code>phx.gen.auth</code>?</p>
<p>Thanks 1M for making this tutorial, going to attack it this weekend</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198714" 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/test-driven-development-with-phoenix-self-published-free/35154/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-198714" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198714"
                     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 #37"></div>
  </section>
</div>
    <div class="postbit" id="198717" data-post-id="198717">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="germsvel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/germsvel/120/26845_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  germsvel
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<aside class="quote no-group" data-username="bottlenecked" data-post="37" data-topic="35154">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/bottlenecked/48/11338_2.png" class="avatar"> bottlenecked:</div>
<blockquote>
<p>OK, as to the master plan I was thinking of having before each chapter: a few words on what we’re going to achieve and how. E.g. ‘to create chatrooms we’re going to need a page listing all chatrooms and another page with a form for creating a new chatroom. Also the chatroom page itself, where users will later be able to actually chat. After all is said and done, we’re going to end up with N controllers/views/templates and M schemas. We’re also going to introduce such-and-such library that will help us with this-and-that’.</p>
</blockquote>
</aside>
<p>I think a little bit of this in each chapter could be really helpful. Thanks for suggesting it.</p>
<blockquote>
<p>Anyway, I hope you keep on enjoying the process of writing a book and not getting discouraged by randoms on the internets; I’ve already learned a lot and made me reconsider a few things about tests I’ve written in the past.</p>
</blockquote>
<p>Glad to hear that! <img src="https://forum.elixirforum.com/images/emoji/apple/tada.png?v=15" title=":tada:" class="emoji" alt=":tada:" loading="lazy" width="20" height="20"> And not to worry. I’m not discouraged by randoms on the internet <img src="https://forum.elixirforum.com/images/emoji/apple/grinning_face_with_smiling_eyes.png?v=15" title=":grinning_face_with_smiling_eyes:" class="emoji" alt=":grinning_face_with_smiling_eyes:" loading="lazy" width="20" height="20">. I really do appreciate the feedback. I want the book to be valuable to people wanting to learn TDD &amp; BDD.</p>
<p>Thanks again. If you have other thoughts, comments, or suggestions, let me know.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="198717" 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/test-driven-development-with-phoenix-self-published-free/35154/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-198717" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198717"
                     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 #38"></div>
  </section>
</div>
    <div class="postbit" id="198718" data-post-id="198718">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="germsvel" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/germsvel/120/26845_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  germsvel
                    <span class="op-star" title="Thread Starter">
                      <img alt="OP" class="op-star-icon" src="/assets/thread-icons/thread-icon-thread-starter-df91e872.png" />
                    </span>
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<blockquote>
<p>Why did we pick <code>Doorman</code> over <code>phx.gen.auth</code>?</p>
</blockquote>
<p>That’s an excellent question. I picked <code>Doorman</code> because it was something simple at the time when I started writing the book (a couple of years ago). But changing that chapter to use <code>phx.gen.auth</code> (or something like that) is in my list of to-dos for v1.</p>
<p>If you’re interested in what else is on the roadmap for v1, I wrote a short list in <a href="https://www.germanvelasco.com/blog/tdd-phoenix-update-nov-2020#the-road-to-v1" class="inline-onebox" rel="noopener nofollow ugc">TDD Phoenix Update (Nov 2020)</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="198718" data-batch-url="/posts/batch_likers">
                        5
                      </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/test-driven-development-with-phoenix-self-published-free/35154/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-198718" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="198718"
                     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="201935" data-post-id="201935">
  <section>
    <div class="post-wrap">


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

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Hi there, I’ve now gone through the book (a good read too!) and have started building a new CRUD-type website using the learnings from the book- i.e. TDD <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>
<p>The thing I keep bumping in to is this: how do the Phoenix generators fit in with the approach advocated for in the book? Just by doing a <code>mix phx.gen.html foo bar</code> one gets a ton of functionality out of the door that is honestly too good to pass by for a simple CRUD app. It doesn’t make much sense starting with the bare bones FeatureCase and going through all the red-green-refactor cycles, because the generator will let you skip on a ton of those, prepare tests for you etc.- stuff that I really don’t want to miss out on because of the speed of development they afford me.</p>
<p>So I guess what I’m trying to say is maybe this: perhaps another section (another chapter? edit an existing chapter?) in the book that would adapt the TDD/BDD process to what the Phoenix generators provide out of the box would really help guide the readers on what e.g. your views on the generators are, or if/how they fit in with your test-first approach etc. I think that not acknowledging the convenience of the generators might lead to missing a chance of getting wider adoption of this technique because it might not be obvious how to merge the two.</p>
<p>Once again, thank you for the book and do not feel obliged to cater to every single wild idea on the internets!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="201935" 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/test-driven-development-with-phoenix-self-published-free/35154/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-201935" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="201935"
                     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 #40"></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/35154/load_more?page=5">Load more posts (4 remaining)</a>
</div></template></turbo-stream>