Last modified by jklein on 2025/02/13 13:15

From version 8.2
edited by jklein
on 2025/01/28 15:20
Change comment: There is no comment for this version
To version 11.1
edited by jklein
on 2025/01/29 09:29
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -279,8 +279,96 @@
279 279  
280 280  === Testen der PowerShell-Module ===
281 281  
282 +Die Funktionalität des erstellten Moduls können Sie mithilfe von Pester (dem Standard-Framework für Unit-Testing in PowerShell) oder eines dedizierten PowerShell Scripts verifizieren. So stellen Sie sicher, dass die Logik fehlerfrei und robust ist. In diesem Beispiel wird das Modul //ISSRestConnector.psm1// mit Pester 5.5.0 getestet.
283 +
284 +{{aagon.infobox}}
285 +Beachten Sie, dass Sie Pester für diesen Test ggf. vorher installieren oder updaten müssen. Weitere Informationen dazu finden Sie in der __[[Dokumentation von Pester>>https://pester.dev/docs/introduction/installation]]__.
286 +{{/aagon.infobox}}
287 +
288 +Sie können das PowerShell-Modul folgendermaßen testen:
289 +
290 +1. Erstellen Sie eine neue Datei mit dem Namen //ISSRestConnectorTests.ps1//.
291 +1. Fügen Sie den nachfolgenden Code in die Datei ein.
292 +1. Drücken Sie Strg + S, um die Datei zu speichern.
293 +1. Führen Sie das Script aus
294 +
295 +{{code language="PowerShell" layout="LINENUMBERS" title="**ISSRestConnectorTest.ps1**"}}
296 +Import-Module -Name Pester -MinimumVersion 5.5.0
297 +Remove-Module ".\Modules\ISSRestConnector.psm1" -Force -ErrorAction SilentlyContinue
298 +Import-Module -Name ".\Modules\ISSRestConnector.psm1" -Force
299 +
300 +Describe "Get-ISSData Function Tests" {
301 + BeforeAll {
302 + # Mock the API response
303 + $global:MockApiResponse = @{
304 + Name = "iss"
305 + Id = 25544
306 + Latitude = 12.34
307 + Longitude = 56.78
308 + Altitude = 408.5
309 + Velocity = 27600.0
310 + Visibility = "daylight"
311 + Timestamp = [datetime]::Now.ToUniversalTime().Subtract([datetime]::UnixEpoch).TotalSeconds
312 + }
313 + }
314 +
315 + Context "When the API responds successfully" {
316 + BeforeEach {
317 + # Mock the API call
318 + Mock -CommandName Invoke-RestMethod -ParameterFilter { $Method -eq 'GET' } -MockWith {
319 + return $global:MockApiResponse
320 + } -ModuleName "ISSRestConnector"
321 + }
322 +
323 + It "Should return a PSCustomObject with expected properties" {
324 + $result = Get-ISSData
325 + $result | Should -BeOfType PSCustomObject
326 + $result.Name | Should -Not -BeNullOrEmpty
327 + $result.Latitude | Should -Not -BeNullOrEmpty
328 + $result.Longitude | Should -Not -BeNullOrEmpty
329 + $result.Altitude | Should -Not -BeNullOrEmpty
330 + $result.Velocity | Should -Not -BeNullOrEmpty
331 + }
332 +
333 + It "Should correctly map the API response to the output object" {
334 + $result = Get-ISSData
335 + $result.Name | Should -Be "iss"
336 + $result.Latitude | Should -Be 12.34
337 + $result.Longitude | Should -Be 56.78
338 + $result.Altitude | Should -Be 408.5
339 + $result.Velocity | Should -Be 27600.0
340 + }
341 + }
342 +
343 + Context "When the API fails" {
344 +
345 + It "Should log an error when the API fails" {
346 + # Mock a failure in the API call
347 + Mock -CommandName Invoke-RestMethod -ParameterFilter { $Method -eq 'GET' } -MockWith {
348 + throw "API error"
349 + } -ModuleName "ISSRestConnector"
350 +
351 + $error.Clear() # Clear any pre-existing errors
352 + Get-ISSData
353 + $error[1].Exception.Message | Should -Contain "API error"
354 + }
355 + }
356 +}
357 +{{/code}}
358 +
359 +(% class="wikigeneratedid" %)
360 +Als Ergebnis des Tests ...
361 +
282 282  === Erstellen der PowerShell-Microservices in AESB ===
283 283  
364 +
365 +Da die benötigten PowerShell-Module nun erstellt und getestet sind, kann mit der Erstellung der Microservices begonnen werden.
366 +
367 +1. Öffnen Sie die AESB Console und navigieren Sie zum Workspace //Creator - PowerShell//.
368 +1. Klicken Sie in der Ribbonleiste im Bereich //Ordner //auf den Button //Hinzufügen// und Erstellen Sie einen Ordner mit dem Namen// ISS_ACMP_Connector.//
369 +1.
370 +
371 +
284 284  === Integrieren der PowerShell-Module in die PowerShell-Microservices ===
285 285  
286 286  
© Aagon GmbH 2025
Besuchen Sie unsere neue Aagon-Community