Просто возвратите код appropiate из основного.
int main(string[] args)
{
return 0; //or exit code of your choice
}
Я исправил это, заставив ReportService принимать сетевые учетные данные вместо имени пользователя, пароля и домена
public void SetNetworkCredential(NetworkCredential networkCredential)
{
_reportExecutionService.Credentials = networkCredential;
}
, поэтому мой тест был намного проще
[TestMethod]
public void TestTest()
{
const string userName = "userName";
const string password = "password";
const string domain = "domain";
var mock = MockRepository.GenerateMock<IReportExecutionService>();
var rptService= new ReportService(mock);
var networkCredential = new System.Net.NetworkCredential(userName, password, domain);
rptService.SetNetworkCredential(networkCredential);
mock.AssertWasCalled(x => x.Credentials = networkCredential);
}
Изменить: Если переосмыслить эту проблему, мой предыдущий предложенный ответ, вероятно, не сработает. Вот почему:
По сути, вы пытаетесь проверить, правильно ли настроена зависимость зависимости. Вероятно, поэтому у вас возникают проблемы с написанием модульного теста для этого. Возможно, вы захотите подумать, имеет ли смысл переместить метод SetNetworkCredential
в класс, который вместо этого реализует IReportExecutionService
.
И если вы это сделаете, юнит-тест для этого метода будет достаточно простым:
[Test]
public void TestSetNetworkCredential()
{
const string userName = "userName";
const string password = "password";
const string domain = "domain";
var rptService= new ReportExecutionService();
rptService.SetNetworkCredential(userName, password, domain);
Assert.AreEqual(userName, rptService.Credentials.UserName);
Assert.AreEqual(password, rptService.Credentials.Password);
Assert.AreEqual(domain, rptService.Credentials.Domain);
}