Skip to content

Latest commit

 

History

History
81 lines (62 loc) · 2.87 KB

generate-unit-tests.md

File metadata and controls

81 lines (62 loc) · 2.87 KB
titleshortTitleintroredirect_fromversionscategorycomplexityocticontopics
Generate unit tests
Generate unit tests
{% data variables.product.prodname_copilot_chat_short %} can help with generating unit tests for a function.
/copilot/example-prompts-for-github-copilot-chat/testing-code/generate-unit-tests
feature
copilot
Testing code
Intermediate
beaker
Copilot

A good suite of unit tests is critical to the success of any project. However, writing these tests can be time-consuming and are often neglected. {% data variables.product.prodname_copilot_chat_short %} can help generate these tests for you.

Example scenario

Imagine you have a Python function which validates data before updating the database. You need to create unit tests to ensure the validation performs the way you expect. You can ask {% data variables.product.prodname_copilot_chat_short %} to generate these tests for you.

defvalidate_price(price: float): ifprice<=0: raiseValueError("Price must be greater than 0") ifprice>1000: raiseValueError("Price must be less than or equal to 1000")

Example prompt

/tests Generate unit tests for this function. Validate both success and failure, and include edge cases.

Example response

{% data reusables.copilot.example-prompts.response-is-an-example %}

If this is your first time asking {% data variables.product.prodname_copilot_chat_short %} to generate unit tests, it may ask you if you wish to configure unit tests for your project. For this example, we are assuming you decline this offer.

{% data variables.product.prodname_copilot_short %} will provide a strategy for generating the tests, and then provide the tests themselves.

importunittestfromgenerate_unit_testsimportvalidate_priceclassTestValidateProduct(unittest.TestCase): deftest_price_zero(self): withself.assertRaises(ValueError) ascontext: validate_price(0) self.assertEqual(str(context.exception), "Price must be greater than 0") deftest_price_negative(self): withself.assertRaises(ValueError) ascontext: validate_price(-10) self.assertEqual(str(context.exception), "Price must be greater than 0") deftest_price_above_limit(self): withself.assertRaises(ValueError) ascontext: validate_price(1500) self.assertEqual(str(context.exception), "Price must be less than or equal to 1000") deftest_price_edge_case_zero(self): withself.assertRaises(ValueError) ascontext: validate_price(0) self.assertEqual(str(context.exception), "Price must be greater than 0") deftest_price_edge_case_max(self): try: validate_price(1000) exceptValueError: self.fail("validate_price() raised ValueError unexpectedly!") if__name__=='__main__': unittest.main()

Further reading

{% data reusables.copilot.example-prompts.further-reading-items %}

close