Simple Calculator Project
Module Objectives
Creating a simple project
Adding code
Uploading our code to GitLab
Writing test cases to check for failed and successful builds
Creating a Project Repository
Now that we have everything set up, we can start making projects. Start by logging into your normal user (if you haven't already), then go to Projects -> New Project. You can remove the README.

Once it's been created, git clone your project into a directory

Making a simple calculator
To test if our runner works, we will create a simple program which we can upload then run tests and configure pipelines for.
Let's make a simple calculator. I'll be using Go for this example
package main
import "fmt"
func Add(x, y int) (res int) {
return x + y
}
func Subtract(x, y int) (res int) {
return x - y
}
func main() {
fmt.Println("Addition: ", Add(1, 2))
fmt.Println("Subtraction: ", Subtract(4, 2))
}
Test this by running go run calculator.go
Addition: 3
Subtraction: 2
Now that it works, we can push our demo app to our repository
> git switch -c main
> git add .
> git commit -m "Calculator Demo"
> git push origin main

Writing Test Cases
Now that we have a functioning program, we can write a test case to check whether the values are acceptable, if not it will fail the build. We will reuse the code above for this
package main
import "fmt"
func Add(x, y int) (res int) {
return x + y
}
func Subtract(x, y int) (res int) {
return x - y
}
func main() {
fmt.Println("Addition: ", Add(1, 2))
fmt.Println("Subtraction: ", Subtract(4, 2))
}
package main
import "testing"
func TestAdd(t *testing.T){
got := Add(4, 4)
want:= 8
if got != want {
t.Errorf("got %q. wanted %q", got, want)
}
}
func TestSubtract(t *testing.T){
got := Subtract(6, 4)
want:= 2
if got != want {
t.Errorf("got %q. wanted %q", got, want)
}
}
To run the test:
> go mod init calculator
> go test
# Result
> go test
PASS
ok calculator 0.127s
We can test for failure as well by changing the want
variable to a random integer/string
> go test
--- FAIL: TestAdd (0.00s)
calculator_test.go:9: got '\b'. wanted '\x05'
--- FAIL: TestSubtract (0.00s)
calculator_test.go:19: got '\x02'. wanted '\x03'
FAIL
exit status 1
FAIL calculator 0.215s
Change back the values and push the code to your repository
Last updated
Was this helpful?