Como testar os argumentos do Ninject Constructor usando objetos MOQ?

Venho fazendo meu primeiro projeto de Desenvolvimento Orientado a Testes recentemente e aprendi Ninject e MOQ. Esta é a minha primeira tentativa de tudo isso. Descobri que a abordagem TDD foi instigante, e Ninject e MOQ foram ótimos. O projeto em que estou trabalhando não foi o mais adequado para o Ninject, pois é um programa C # altamente configurável, projetado para testar o uso de uma interface de serviço da Web.

Dividi-o em módulos e tenho interfaces por toda a loja, mas continuo descobrindo que estou tendo que usar muitos argumentos de construtor ao obter uma implementação de um serviço a partir do kernel Ninject. Por exemplo

No meu módulo Ninject;

Bind<IDirEnum>().To<DirEnum>()

My DirEnum class;

public class DirEnum : IDirEnum
{
    public DirEnum(string filePath, string fileFilter, 
        bool includeSubDirs)
    {
        ....

Na minha classe Configurator (este é o principal ponto de entrada) que conecta todos os serviço

class Configurator
{

    public ConfigureServices(string[] args)
    {
        ArgParser argParser = new ArgParser(args);
        IDirEnum dirEnum = kernel.Get<IDirEnum>(
            new ConstructorArgument("filePath", argParser.filePath),
            new ConstructorArgument("fileFilter", argParser.fileFilter),
            new ConstructorArgument("includeSubDirs", argParser.subDirs)
        );

filePath, fileFilter e includeSubDirs são opções de linha de comando para o programa. Por enquanto, tudo bem. No entanto, sendo um tipo de pessoa consciente, tenho um teste que cobre esse pouco de código. Eu gostaria de usar um objeto MOQ. Eu criei um módulo Ninject para meus testes;

public class TestNinjectModule : NinjectModule
{
    internal IDirEnum mockDirEnum {set;get};
    Bind<IDirEnum>().ToConstant(mockDirEnum);
}

E no meu teste eu uso assim;

[TestMethod]
public void Test()
{
    // Arrange
    TestNinjectModule testmodule = new TestNinjectModule();
    Mock<IDirEnum> mockDirEnum = new Mock<IDirEnum>();
    testModule.mockDirEnum = mockDirEnum;
    // Act
    Configurator configurator = new Configurator();
    configurator.ConfigureServices();
    // Assert

    here lies my problem! How do I test what values were passed to the
    constructor arguments???

Então, o exemplo acima mostra o meu problema. Como posso testar quais argumentos foram passados para os ConstructorArguments do objeto simulado? Meu palpite é que Ninject está dispensando os argumentos Constuctor neste caso, pois o Bind não os exige? Posso testar isso com um objeto MOQ ou preciso codificar manualmente um objeto simulado que implementa DirEnum e aceita e 'registra' os argumentos do construto

n.b. esse código é um exemplo de código, ou seja, não reproduzi meu código literalmente, mas acho que expressei o suficiente para transmitir os problemas com esperança? Se você precisar de mais contexto, pergunte!

Obrigado por olhar. Seja gentil, esta é a minha primeira vez; -)

Jim

questionAnswers(1)

yourAnswerToTheQuestion