Есть ли в Кротах способ кротить / смоделировать метод с ключевым словом params? - PullRequest
2 голосов
/ 23 июня 2011

Есть ли способ вызвать / заглушить / смоделировать метод с помощью ключевого слова params?

Вот пример метода, который я пытаюсь вызвать / заглушить:

Void SomeMethod(bool finalizer,params string[] parameters)...

Я пытался измерить это так:

scriptServiceStub.SomeMethodBooleanStringArray=
                (bool finalizer, params string[] parameters) =>
                    {
                        agentCommCalled = true;
                    };

Я получаю следующую ошибку компиляции:

';Ожидаемый 'и' Тип ожидаемый '

, который выделяет ключевое слово params.

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Просто удалите ключевое слово params из подписи делегата в вашем примере, и оно будет работать просто отлично.

scriptServiceStub.SomeMethodBooleanStringArray=
            (bool finalizer, string[] parameters) =>
                {
                    agentCommCalled = true;
                };
1 голос
/ 23 июня 2011

Я нашел обходной путь, создав метод в файле класса теста и назначив заглушку этому новому методу.

[TestMethod()] 
[HostType("Moles")] 
public void NotifyAgentTest() 
{ 
    ... 
    //ensure that the correct values are passed to the agentComm. 
    // have to use a real method because of the parameters param w/ the params keyword. 
    scriptServiceStub.AgentCommStringArray = AgentCommDelegate; 
    ... 
    Assert.IsTrue(agentCommCalled);

}

public bool AgentCommDelegate(bool finalizer, params string[] parameters) 
{
    agentCommCalled = true; return true; 
}
...