கோ உடன் இரண்டாவது நாள்!

கோ உடன் எனது முன்னேற்றத்தை பதிவு செய்யும் இரண்டாவது நாள் இது. நேற்று நான் தொகுக்கும் நேர முரண்பாடுகளைப் பற்றி பதிவு செய்தேன். இன்று கோ உடன் சேர்ந்து TDD பற்றியும் காண்போம்.

TDD என்றால் Test Driven Development என்று பொருள்படும். இந்த வலைப்பதிவில் TDD அணுகுமுறையின் ஆழத்திற்கு நான் செல்லப் போவதில்லை(அது ஒரு ஆழ்கடல்). நிரல் மொழிக் கண்ணோட்டத்தில் TDDயை கோ எப்படி அணுகுகிறது என்பதில் நான் மிகவும் ஈர்க்கப்பட்டேன். Go நிரல் சோதனைக்காக டெஸ்டிங் எனப்படும் ஒரு தொகுப்பை(பேக்கேஜ்) வழங்குகிறது, இது அத்தியாவசிய சோதனை மற்றும் தரப்படுத்தல் கொக்கிகளை நம் பயன்பாட்டிற்கு தருகிறது. பெரும்பாலான நிரல் மொழிகள் சோதனை கட்டமைப்புக்கு மூன்றாம் தரப்பு கட்டமைப்புகளையே நம்புகின்றன, ஆனால் கோ உள்ளமைக்கப்பட்ட சோதனை கட்டமைப்பை கொண்டது. இப்பண்பு என்னை மிகவும் கவர்ந்தது.

நிரல் நுழைவு புள்ளி மற்றும் நிரல் பயன்படுத்தும் கோ பதிப்பைக் குறிப்பிடுவதற்கு ஒரு மோட் கோப்பு உருவாக்கப்படவேண்டும் என்று நான் அறிந்தேன். இது ஒரு சார்பு கண்காணிப்பு கோப்பாகும், இது நோட் சூழலில் package.json போன்றது என்று நான் நினைக்கிறேன்.

பிறகு இரண்டு கோப்புகளை உருவாக்கினேன், அவை,

  1. hello.go
  2. hello_test.go

ஒரு பொதுவான கோ மோட் கோப்பு கீழே உள்ளது போல் இருக்கும்,

// go.mod

module hello

go 1.19

TDDயின் முதல் விதி, முதலில் சோதனை நிரலை எழுதி, பிறகு அதை தேர்ச்சிப்பெறவைத்தல்.

எனவே எனது hello_test.go கோப்பினைக் கீழ் காணும்படி நிரலாக்கம் செய்ய தொடங்கினேன்.

// hello_test.go

package main

import "testing"

func TestHello(t *testing.T){
    t.Run("greeting TC1", func(t *testing.T) {
        got := Hello("Hello cr08")
        want := "Hello cr08"
        consoler(t,got,want)
    })
    t.Run("Empty name TC2", func(t *testing.T){
        got := Hello("")
        want := "Hello World"
        consoler(t,got,want)
    })
}

func consoler(t testing.TB, got, want string){
    t.Helper()
    if got != want {
        t.Errorf("Expected %q, but got %q", want,got)
    }
}

எனது hello_test.go கோப்பை முடித்த பிறகு எனது hello.go கோப்பை கீழ் காணும்படி நிரலாக்கம் செய்ய தொடங்கினேன்.

// hello.go

package main

import "fmt"

const HelloPrefix = "Hello "
func Hello(name string) (res string){
    if name == "" {
        name = "World"
    }
    return HelloPrefix + name
}
func main() {
    fmt.Println(hello("cr08"))
}

மேலே உள்ள நிரல் துணுக்குகள் ஏறக்குறைய சுய விளக்கமளிக்கும் வகையிலேயே உள்ளன, hello_test.go கோப்பு சரியான வெளியீடு மற்றும் வெற்றுச் சரம் ஆகிய இரண்டு தகவல்களைச் சரிபார்க்கிறது. எதிர்பார்த்த வெளியீடு பெறப்படாவிட்டால் நிரல் பிழையை உருவாக்க உள்ளமைக்கப்பட்ட உதவி முறைகளைப் பயன்படுத்துகிறது.

இன்றைய கற்றல் பதிவு இதுவே, தரப்படுத்தல் பற்றி நாளை வலைப்பதிவு செய்கிறேன். TDD உடன் கோ கற்றுக்கொள்வதில் நீங்கள் உண்மையிலேயே ஆர்வமாக இருந்தால், நான் பரிந்துரைக்கும் மின் புத்தகம்.

நீங்கள் என்னுடன் சேர்ந்து கோ கற்க விரும்பினால் அல்லது உங்களுக்கு ஏதேனும் கோ பற்றிய ஆலோசனைகள் இருந்தால், தயவுசெய்து தொடர்பு கொள்ளுங்கள்.

தங்களின் நேரத்திற்கு நன்றி!

உங்களிடமிருந்து விடைப்பெருவது,

~கோரீ08