<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Neo Developer</title>
    <description>The latest articles on DEV Community by Neo Developer (@neo-developer).</description>
    <link>https://dev.to/neo-developer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2187273%2Fe496f4f0-2d32-4855-8d79-c30af97abe86.png</url>
      <title>DEV Community: Neo Developer</title>
      <link>https://dev.to/neo-developer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neo-developer"/>
    <language>en</language>
    <item>
      <title>Python Code Testing Frameworks to Choose From</title>
      <dc:creator>Neo Developer</dc:creator>
      <pubDate>Thu, 10 Oct 2024 05:24:28 +0000</pubDate>
      <link>https://dev.to/neo-developer/python-code-testing-frameworks-to-choose-from-n14</link>
      <guid>https://dev.to/neo-developer/python-code-testing-frameworks-to-choose-from-n14</guid>
      <description>&lt;p&gt;Something to learn while writing quality code, as there are levels of development and best practices. The selection of tools and techniques is just as important.&lt;/p&gt;

&lt;p&gt;Testing frameworks based on needs or requirements:&lt;/p&gt;

&lt;h3&gt;
  
  
  Doctest
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A simple testing framework&lt;/li&gt;
&lt;li&gt;Write test cases within function docstrings&lt;/li&gt;
&lt;li&gt;Automatically locates the test cases within the docstrings&lt;/li&gt;
&lt;li&gt;Good for documentation and keeping code up to date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;def add&lt;span class="o"&gt;(&lt;/span&gt;a, b&lt;span class="o"&gt;)&lt;/span&gt;:
    &lt;span class="s2"&gt;"""
    Add two numbers
    &amp;gt;&amp;gt;&amp;gt; add(2, 3)
    5
    """&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;a + b

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="nv"&gt;__name__&lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="s2"&gt;"__main__"&lt;/span&gt;:
    import doctest
    doctest.testmod&lt;span class="o"&gt;()&lt;/span&gt;
    print&lt;span class="o"&gt;(&lt;/span&gt;add&lt;span class="o"&gt;(&lt;/span&gt;2, 3&lt;span class="o"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Unittest
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;A Python built-in library&lt;/li&gt;
&lt;li&gt;Write class and method-based test cases&lt;/li&gt;
&lt;li&gt;Separate code and test cases&lt;/li&gt;
&lt;li&gt;Test case names should start with 'test_'&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;import unittest
from main import add

class TestAdd&lt;span class="o"&gt;(&lt;/span&gt;unittest.TestCase&lt;span class="o"&gt;)&lt;/span&gt;:
    def test_add&lt;span class="o"&gt;(&lt;/span&gt;self&lt;span class="o"&gt;)&lt;/span&gt;:
        self.assertEqual&lt;span class="o"&gt;(&lt;/span&gt;add&lt;span class="o"&gt;(&lt;/span&gt;2, 3&lt;span class="o"&gt;)&lt;/span&gt;, 5&lt;span class="o"&gt;)&lt;/span&gt;
        self.assertEqual&lt;span class="o"&gt;(&lt;/span&gt;add&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-2&lt;/span&gt;, &lt;span class="nt"&gt;-3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="nt"&gt;-5&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;
        self.assertEqual&lt;span class="o"&gt;(&lt;/span&gt;add&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-2&lt;/span&gt;, 3&lt;span class="o"&gt;)&lt;/span&gt;, 1&lt;span class="o"&gt;)&lt;/span&gt;
        self.assertEqual&lt;span class="o"&gt;(&lt;/span&gt;add&lt;span class="o"&gt;(&lt;/span&gt;2, &lt;span class="nt"&gt;-3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;, &lt;span class="nt"&gt;-1&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;__name__ &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s2"&gt;"__main__"&lt;/span&gt;:
    unittest.main&lt;span class="o"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pytest
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;An external Python library&lt;/li&gt;
&lt;li&gt;No need to write class-based test cases&lt;/li&gt;
&lt;li&gt;Less verbose compared to unittest&lt;/li&gt;
&lt;li&gt;More descriptive and colorful outputs&lt;/li&gt;
&lt;li&gt;Supports code coverage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;from main import add

def test_add&lt;span class="o"&gt;()&lt;/span&gt;:
    assert add&lt;span class="o"&gt;(&lt;/span&gt;2, 3&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; 5
    assert add&lt;span class="o"&gt;(&lt;/span&gt;2, &lt;span class="nt"&gt;-3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nt"&gt;-1&lt;/span&gt;
    assert add&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-2&lt;/span&gt;, 3&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; 1
    assert add&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nt"&gt;-2&lt;/span&gt;, &lt;span class="nt"&gt;-3&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="nt"&gt;-5&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Finally, let's also consider cases where test cases require specific setup to keep the tests consistent.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Unittest provides &lt;code&gt;setUp()&lt;/code&gt; and &lt;code&gt;tearDown()&lt;/code&gt; functionality, which runs before and after every test execution.&lt;/p&gt;

&lt;p&gt;Pytest provides the &lt;code&gt;@pytest.fixture&lt;/code&gt; decorator, which runs before and after every test execution.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>development</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Development: On a Journey from Nothing to Something</title>
      <dc:creator>Neo Developer</dc:creator>
      <pubDate>Wed, 09 Oct 2024 05:34:53 +0000</pubDate>
      <link>https://dev.to/neo-developer/on-a-journey-from-nothing-to-something-1ako</link>
      <guid>https://dev.to/neo-developer/on-a-journey-from-nothing-to-something-1ako</guid>
      <description>&lt;p&gt;Do you feel me?&lt;br&gt;
a. Confused but want to get the clarity...&lt;br&gt;
b. Know what it feels like, the end goal...&lt;br&gt;
c. Don't know how to get there...&lt;br&gt;
d. Instant spark of energy to get going...&lt;/p&gt;

&lt;p&gt;Thank you for reading.&lt;/p&gt;

&lt;p&gt;I just feel like starting my development journey all over again.&lt;/p&gt;

&lt;p&gt;Few things on checklist to start doing on daily basis:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Code review&lt;/li&gt;
&lt;li&gt;List down the advanced concepts used&lt;/li&gt;
&lt;li&gt;Solve technical questions&lt;/li&gt;
&lt;li&gt;Data modeling&lt;/li&gt;
&lt;li&gt;Technologies integration and design&lt;/li&gt;
&lt;li&gt;Write; Document&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>productivity</category>
      <category>developer</category>
    </item>
  </channel>
</rss>
