Насмешки носорога Утверждают, что Метод set Свойства назвали с типом правильного объекта

Просто возвратите код appropiate из основного.

int main(string[] args)
{
      return 0; //or exit code of your choice
}
6
задан Jon Erickson 30 July 2009 в 23:20
поделиться

2 ответа

Я исправил это, заставив 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);
}
15
ответ дан 8 December 2019 в 13:01
поделиться

Изменить: Если переосмыслить эту проблему, мой предыдущий предложенный ответ, вероятно, не сработает. Вот почему:

По сути, вы пытаетесь проверить, правильно ли настроена зависимость зависимости. Вероятно, поэтому у вас возникают проблемы с написанием модульного теста для этого. Возможно, вы захотите подумать, имеет ли смысл переместить метод 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);
}
3
ответ дан 8 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: