Breaking changes in Visual C++ 2015

Chris via Digitalmars-d digitalmars-d at puremagic.com
Thu May 14 06:22:20 PDT 2015


On Wednesday, 13 May 2015 at 08:26:35 UTC, Kagamin wrote:
> On Monday, 11 May 2015 at 09:31:34 UTC, Chris wrote:
>> Hm, I was thinking of something like that, however, it gets 
>> more and more complicated if you have e.g. a class that uses 
>> another class etc.
>>
>> class Data // A singleton
>> {
>>  // stores paths to resources etc.
>> }
>>
>> class Loader
>> {
>>  this()
>>   this.data = Data.getInstance();
>>  // Loads files and caches them in memory
>> }
>>
>> class Process
>> {
>>  // Uses cached data
>> }
>>
>> It ain't easy to unit test Process, but even Loader and Data 
>> can be tricky to unit test, because all of them depend on 
>> input from the outside.
>
> That's the reason for IoC design; it's similar to ranges in a 
> sense that you feed the range with data instead of letting it 
> figure out where to get that data on its own.

However, the data comes from somewhere outside the program, and 
although you can IoC most parts of a program _after_ it's been 
fed the data, the initial input section is not easily unit tested 
(i.e. unit test in D).

Unit tests only work for the data processing logic inside a unit 
after the program has received the data from the outside. But the 
initial acquisition of data is outside the scope of these unit 
tests. Thus, there are always bits and pieces that cannot be 
unit-tested like e.g. loading files.


More information about the Digitalmars-d mailing list