-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit bef0a08
Showing
172 changed files
with
43,892 additions
and
0 deletions.
There are no files selected for viewing
Empty file.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,230 @@ | ||
|
||
|
||
<!DOCTYPE html> | ||
|
||
<html lang="en-US"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta http-equiv="X-UA-Compatible" content="IE=Edge"> | ||
|
||
<link rel="stylesheet" href="/CS4530-Fall-2024/assets/css/just-the-docs-default.css"> | ||
|
||
|
||
|
||
|
||
<script src="/CS4530-Fall-2024/assets/js/vendor/lunr.min.js"></script> | ||
|
||
|
||
<script src="/CS4530-Fall-2024/assets/js/just-the-docs.js"></script> | ||
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
|
||
|
||
|
||
|
||
<!-- Begin Jekyll SEO tag v2.7.1 --> | ||
<title>Test-Driven Development | CS4530, Fall 2024</title> | ||
<meta name="generator" content="Jekyll v3.9.0" /> | ||
<meta property="og:title" content="Test-Driven Development" /> | ||
<meta property="og:locale" content="en_US" /> | ||
<meta name="description" content="Northeastern University CS 4530 “Fundamentals of Software Engineering”, Fall 2024. Professors Adeel Bhutta and Mitch Wand." /> | ||
<meta property="og:description" content="Northeastern University CS 4530 “Fundamentals of Software Engineering”, Fall 2024. Professors Adeel Bhutta and Mitch Wand." /> | ||
<link rel="canonical" href="https://neu-se.github.io/CS4530-Fall-2024/Activities/Module02%20Activity/" /> | ||
<meta property="og:url" content="https://neu-se.github.io/CS4530-Fall-2024/Activities/Module02%20Activity/" /> | ||
<meta property="og:site_name" content="CS4530, Fall 2024" /> | ||
<meta name="twitter:card" content="summary" /> | ||
<meta property="twitter:title" content="Test-Driven Development" /> | ||
<script type="application/ld+json"> | ||
{"description":"Northeastern University CS 4530 “Fundamentals of Software Engineering”, Fall 2024. Professors Adeel Bhutta and Mitch Wand.","headline":"Test-Driven Development","dateModified":"2024-09-30T19:04:46+00:00","url":"https://neu-se.github.io/CS4530-Fall-2024/Activities/Module02%20Activity/","@type":"WebPage","@context":"https://schema.org"}</script> | ||
<!-- End Jekyll SEO tag --> | ||
|
||
|
||
|
||
|
||
</head> | ||
|
||
<body> | ||
<a class="skip-to-main" href="#main-content">Skip to main content</a> | ||
<svg xmlns="http://www.w3.org/2000/svg" class="d-none"> | ||
<symbol id="svg-link" viewBox="0 0 24 24"> | ||
<title>Link</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"> | ||
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path> | ||
</svg> | ||
</symbol> | ||
|
||
<symbol id="svg-menu" viewBox="0 0 24 24"> | ||
<title>Menu</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"> | ||
<line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line> | ||
</svg> | ||
</symbol> | ||
|
||
<symbol id="svg-arrow-right" viewBox="0 0 24 24"> | ||
<title>Expand</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"> | ||
<polyline points="9 18 15 12 9 6"></polyline> | ||
</svg> | ||
</symbol> | ||
|
||
<!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE --> | ||
<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link"> | ||
<title id="svg-external-link-title">(external link)</title> | ||
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line> | ||
</symbol> | ||
|
||
|
||
<symbol id="svg-doc" viewBox="0 0 24 24"> | ||
<title>Document</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file"> | ||
<path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline> | ||
</svg> | ||
</symbol> | ||
|
||
<symbol id="svg-search" viewBox="0 0 24 24"> | ||
<title>Search</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"> | ||
<circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line> | ||
</svg> | ||
</symbol> | ||
|
||
|
||
|
||
<!-- Bootstrap Icons. MIT License: https://github.com/twbs/icons/blob/main/LICENSE.md --> | ||
<symbol id="svg-copy" viewBox="0 0 16 16"> | ||
<title>Copy</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard" viewBox="0 0 16 16"> | ||
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1h1a1 1 0 0 1 1 1V14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3.5a1 1 0 0 1 1-1h1v-1z"/> | ||
<path d="M9.5 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3zm-3-1A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3z"/> | ||
</svg> | ||
</symbol> | ||
<symbol id="svg-copied" viewBox="0 0 16 16"> | ||
<title>Copied</title> | ||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-clipboard-check-fill" viewBox="0 0 16 16"> | ||
<path d="M6.5 0A1.5 1.5 0 0 0 5 1.5v1A1.5 1.5 0 0 0 6.5 4h3A1.5 1.5 0 0 0 11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3Zm3 1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-1a.5.5 0 0 1 .5-.5h3Z"/> | ||
<path d="M4 1.5H3a2 2 0 0 0-2 2V14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3.5a2 2 0 0 0-2-2h-1v1A2.5 2.5 0 0 1 9.5 5h-3A2.5 2.5 0 0 1 4 2.5v-1Zm6.854 7.354-3 3a.5.5 0 0 1-.708 0l-1.5-1.5a.5.5 0 0 1 .708-.708L7.5 10.793l2.646-2.647a.5.5 0 0 1 .708.708Z"/> | ||
</svg> | ||
</symbol> | ||
|
||
|
||
</svg> | ||
|
||
<div class="side-bar"> | ||
<div class="site-header" role="banner"> | ||
<a href="/CS4530-Fall-2024/" class="site-title lh-tight"> | ||
CS4530, Fall 2024 | ||
|
||
</a> | ||
<button id="menu-button" class="site-button btn-reset" aria-label="Toggle menu" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" class="icon" aria-hidden="true"><use xlink:href="#svg-menu"></use></svg> | ||
</a> | ||
</div> | ||
<nav aria-label="Main" id="site-nav" class="site-nav"> | ||
|
||
|
||
<ul class="nav-list"><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Calendar category" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> | ||
</button><a href="/CS4530-Fall-2024/calendar/" class="nav-list-link">Calendar</a><ul class="nav-list"><li class="nav-list-item "><a href="/CS4530-Fall-2024/calendar/s1" class="nav-list-link">Section 1 - Calendar</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/calendar/s2" class="nav-list-link">Section 2 - Calendar</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/calendar/s5" class="nav-list-link">Section 5 - Calendar</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/calendar/s8" class="nav-list-link">Section 8 - Calendar</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/calendar/s9" class="nav-list-link">Section 9 - Calendar</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Modules category" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> | ||
</button><a href="/CS4530-Fall-2024/modules/" class="nav-list-link">Modules</a><ul class="nav-list"><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/1-requirements-testing" class="nav-list-link">1 - Orientation & Requirements</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/2-requirements-to-code" class="nav-list-link">2 - From Requirements to Code</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/3-test-adequacy" class="nav-list-link">3 - Test Adequacy</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/4-code-level-design" class="nav-list-link">4 - Code-Level Design Principles</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/5-interaction-level-design-patterns" class="nav-list-link">5 - Interaction-Level Design Patterns</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/6-concurrency-patterns-in-typescript" class="nav-list-link">6 - Concurrency Patterns in Typescript</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/7-software-process" class="nav-list-link">7 - Software Process</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/8-react" class="nav-list-link">8 - React</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/9-patterns-of-react" class="nav-list-link">9 - React Hooks</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/10-ds-1" class="nav-list-link">10 - Distributed Systems Architectures (Part 1)</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/modules/11-distributed-systems-2" class="nav-list-link">11 - Distributed Systems (Part 2)</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Assignments category" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> | ||
</button><a href="/CS4530-Fall-2024/assignments/" class="nav-list-link">Assignments</a><ul class="nav-list"><li class="nav-list-item "><a href="/CS4530-Fall-2024/assignments/ip1" class="nav-list-link">Individual Project 1</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/assignments/project-overview" class="nav-list-link">Project Overview</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/assignments/project-plan" class="nav-list-link">Preliminary Project Plan</a></li></ul></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Tutorials category" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> | ||
</button><a href="/CS4530-Fall-2024/tutorials/" class="nav-list-link">Tutorials</a><ul class="nav-list"><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week1-getting-started" class="nav-list-link">Installing a Development Environment</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week1-typescript-basics" class="nav-list-link">Typescript Basics</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week1-user-stories" class="nav-list-link">User Stories and Conditions of Satisfaction</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week1-unit-testing" class="nav-list-link">Unit Testing with Jest</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week1-mongodb-mongoose" class="nav-list-link">MongoDB and Mongoose</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/tutorials/week4-react-basics" class="nav-list-link">React Tutorial</a></li></ul></li><li class="nav-list-item"><a href="/CS4530-Fall-2024/textbooks/" class="nav-list-link">Textbooks</a></li><li class="nav-list-item"><a href="/CS4530-Fall-2024/staff/" class="nav-list-link">Staff</a></li><li class="nav-list-item"><button class="nav-list-expander btn-reset" aria-label="toggle items in Policies category" aria-pressed="false"> | ||
<svg viewBox="0 0 24 24" aria-hidden="true"><use xlink:href="#svg-arrow-right"></use></svg> | ||
</button><a href="/CS4530-Fall-2024/policies/" class="nav-list-link">Policies</a><ul class="nav-list"><li class="nav-list-item "><a href="/CS4530-Fall-2024/policies/style/" class="nav-list-link">Code Style</a></li><li class="nav-list-item "><a href="/CS4530-Fall-2024/policies/debugging/" class="nav-list-link">Debugging</a></li></ul></li><li class="nav-list-item"><a href="/CS4530-Fall-2024/resources/" class="nav-list-link">Other Resources</a></li></ul> | ||
|
||
|
||
</nav> | ||
|
||
|
||
|
||
<footer class="site-footer"> | ||
This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll. | ||
</footer> | ||
|
||
</div> | ||
|
||
<div class="main" id="top"> | ||
<div id="main-header" class="main-header"> | ||
|
||
|
||
|
||
<div class="search" role="search"> | ||
<div class="search-input-wrap"> | ||
<input type="text" id="search-input" class="search-input" tabindex="0" placeholder="Search CS4530, Fall 2024" aria-label="Search CS4530, Fall 2024" autocomplete="off"> | ||
<label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label> | ||
</div> | ||
<div id="search-results" class="search-results"></div> | ||
</div> | ||
|
||
|
||
|
||
|
||
</div> | ||
|
||
<div id="main-content-wrap" class="main-content-wrap"> | ||
|
||
<div id="main-content" class="main-content"> | ||
<main> | ||
|
||
<div class="fs-1 text-right fw-300">Last updated: Sep 30, 24 19:04 UTC | <a href="/CS4530-Fall-2024/Activities/Module02%20Activity/">Permalink</a></div> | ||
<h2 id="test-driven-development"> | ||
|
||
|
||
<a href="#test-driven-development" class="anchor-heading" aria-labelledby="test-driven-development"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Test-Driven Development | ||
|
||
|
||
</h2> | ||
|
||
|
||
<p>This activity is intended to supplement the CS4530 lecture on test-driven development.</p> | ||
<h3 id="steps"> | ||
|
||
|
||
<a href="#steps" class="anchor-heading" aria-labelledby="steps"><svg viewBox="0 0 16 16" aria-hidden="true"><use xlink:href="#svg-link"></use></svg></a> Steps | ||
|
||
|
||
</h3> | ||
|
||
|
||
<ol> | ||
<li>Download and unpack the <a href="/CS4530-Fall-2024/Activities/module02-tdd-transcript-activity.zip">starter Code</a></li> | ||
<li>Write down the testable behaviors for the satisfaction condition: “Add a new grade for an existing student”</li> | ||
<li>Identify at least two exceptional conditions or design decisions associated with these testable behaviors</li> | ||
<li>Write Jest tests for your testable behaviors</li> | ||
<li>Implement a method <code class="language-plaintext highlighter-rouge">addGrade</code> that passes your tests.</li> | ||
</ol> | ||
|
||
<p>When you are done, submit your work as required by your instructor (check the Canvas asssignment for details, if assigned). This may vary from section to section.</p> | ||
|
||
|
||
|
||
|
||
</main> | ||
|
||
|
||
<hr> | ||
<footer> | ||
|
||
|
||
<p class="text-small text-grey-dk-100 mb-0">© 2024 Adeel Bhutta and Mitch Wand. Released under the <a href="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA</a> license</p> | ||
|
||
|
||
</footer> | ||
|
||
|
||
</div> | ||
</div> | ||
|
||
|
||
|
||
<div class="search-overlay"></div> | ||
|
||
|
||
</div> | ||
|
||
|
||
</body> | ||
</html> | ||
|
Oops, something went wrong.