{"id":295,"date":"2022-09-12T22:38:36","date_gmt":"2022-09-12T20:38:36","guid":{"rendered":"https:\/\/ackeeblockchain.com\/blog\/?post_type=glossary&#038;p=295"},"modified":"2022-09-12T22:39:00","modified_gmt":"2022-09-12T20:39:00","slug":"unit-testing","status":"publish","type":"glossary","link":"https:\/\/ackee.xyz\/blog\/glossary\/unit-testing\/","title":{"rendered":"Unit testing"},"content":{"rendered":"<p class=\"p1\">In computer programming, unit testing is a software testing method in which the smallest testable parts of a program are individually and independently tested to determine whether they are fit to use.<\/p>\n<p class=\"p1\">When we find it appropriate and useful (i.e., most of the time), we write our own unit tests.<\/p>\n<p class=\"p1\">For <span class=\"s1\">EVM<\/span> smart contracts written in <span class=\"s1\">Solidity<\/span>, the following frameworks can be used to write unit tests:<\/p>\n<ul class=\"ul1\">\n<li class=\"li1\"><span class=\"s2\"><a href=\"https:\/\/eth-brownie.readthedocs.io\/en\/stable\/\"><span class=\"s1\">Brownie<\/span><\/a> &#8211; <\/span>Python-based development and testing framework;<\/li>\n<li class=\"li1\"><span class=\"s2\"><a href=\"https:\/\/hardhat.org\/tutorial\/testing-contracts\"><span class=\"s1\">Hardhat<\/span><\/a><\/span> Network &#8211; tests are written in Javascript;<\/li>\n<li class=\"li1\"><span class=\"s2\"><a href=\"https:\/\/book.getfoundry.sh\/forge\/writing-tests\"><span class=\"s1\">Foundry&#8217;s Forge<\/span><\/a> &#8211; <\/span>tests are written in Solidity.<\/li>\n<\/ul>\n<p class=\"p1\">There is no tooling yet for Solana programs like on Ethereum, which is why we started developing our own Solana testing framework, <a href=\"https:\/\/github.com\/Ackee-Blockchain\/trdelnik\"><span class=\"s3\">Trdelnik<\/span><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In computer programming, unit testing is a software testing method in which the smallest testable parts of a program are individually and independently tested to determine whether they are fit to use. When we find it appropriate and useful (i.e., most of the time), we write our own unit tests. For EVM smart contracts written in Solidity, the following frameworks can be&hellip;<\/p>\n","protected":false},"author":12,"featured_media":0,"parent":0,"template":"","glossary-cat":[],"class_list":["post-295","glossary","type-glossary","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/glossary\/295","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/glossary"}],"about":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/types\/glossary"}],"author":[{"embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/users\/12"}],"version-history":[{"count":0,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/glossary\/295\/revisions"}],"wp:attachment":[{"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/media?parent=295"}],"wp:term":[{"taxonomy":"glossary-cat","embeddable":true,"href":"https:\/\/ackee.xyz\/blog\/wp-json\/wp\/v2\/glossary-cat?post=295"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}