Closed bevanweiss closed 5 months ago
I agree with what you've shared, however I'm not actively developing this library beyond bug fixes at the moment. If I revisit this when time and buget open up, I will look at that.
My current test strategy has been to run some different vendor servers and clients with a batch script and programmatically check that their operations against TestClient and TestServer succeed.
I've been using the TestServer / TestClient during my changes to confirm that I haven't completely broken the library, but it would be great if there was a set of Unit Tests that exercised various aspects of the Server / Client interfaces.
My thoughts are that perhaps it could start at quite a high level, and be more 'Integration Tests' where a framework like xUnit / NUnit / MSTest could actually setup a Server, and a Client, and do certain actions (like Read/Write/Subscribe/Browse etc) from each of the various Node DataTypes expected.
Such Unit Tests could potentially also feed into a Benchmarking framework like BenchmarkDotNet to give some better indication of the performance impact of various code changes. (https://benchmarkdotnet.org/articles/features/vstest.html)
I'm thinking that LibUA would likely benefit from Pipelines https://devblogs.microsoft.com/dotnet/system-io-pipelines-high-performance-io-in-net/