A related thought. If edge.js has access to a C# testing framework, for example, Microsoft.VisualStudio.TestTools.UnitTesting, then: * the unit tests can be written in C# * edge.js can be used to call upon them from within nodejs.
In short, C# testing can be run as if it were jqUnit testing. I'll explore that. On 2017-11-13 3:52 PM, Joseph Scheuhammer wrote: > Hi, > > I'm working on adding the ability to test C#/.NET code used with edge.js > (GPII-2672 [1]). But, I've started to wonder about whether this should > be done or not. This is a way of thinking out loud and seeing what > others have to say. > > The issue started when some of my ProcessReporter C# code caused > exceptions or worse. Antranig remarked (paraphrase), that the more C# > and edge.js we use, the more we need to run unit tests on the C# code > itself. That seems like a pretty obvious and indisputable conclusion. > > But, it occurred to me that something analogous is happening on the > Linux side and we don't test there. > > The purpose of C# + edge is to get at Windows native OS specific > features that are not directly available from nodejs, and to allow > calling on them from nodejs + JavaScript. By comparison, in the case of > Linux, we use C++ to build node add-ons to provide the same kind > interface between nodejs and Linux native OS features. We do not unit > test the C++ code. > > But, it's not the case that we do not test anything with respect to the > Linux node add-ons. What we do on Linux is export certain key functions > from the C++ code that define the interface between node and the > add-on. Everything behind that on the C++ side of the interface is a > black box. We write unit tests for the exported functions using nodejs > and jqUnit. For example there is a "nodepackagekit_test.js" [2] that > tests the C++ interface functions. But, there are no tests for any of > the supporting C++ functions defined within the add-on that are > "private" to it. > > By that logic, we should do the same thing with C# on Windows. We > should just test the interface functions. > > On the other hand, there is the argument that the more you test, the > better you are in terms of finding bugs, detecting regressions, and so > on. This line of thought leads to actual C# testing (and, on Linux, C++ > testing). > > Thoughts? > > [1] https://issues.gpii.net/browse/GPII-2672 > > [2] > https://github.com/GPII/linux/blob/master/gpii/node_modules/packagekit/nodepackagekit/nodepackagekit_test.js > -- ;;;;joseph. 'Call me hobophobic, but I don't think two vagrants should be allowed to marry.' - J. Tiedrich - _______________________________________________ Architecture mailing list [email protected] https://lists.gpii.net/mailman/listinfo/architecture
