gpt4 book ai didi

c# - 最小起订量问题 - 仅在构建服务器 (TeamCity) 上

转载 作者:太空宇宙 更新时间:2023-11-03 16:26:20 27 4
gpt4 key购买 nike

我有一个被模拟的接口(interface):

public interface IEmailService
{
void SendAsHtml(string to, string from, string subject, string notification);
void SendAsHtml(string to, string from, string subject, string notification, string[] cc);
}

它以前是一个带有 params string[] cc 的单一方法,但我在试图找出构建服务器上的错误时将这些方法分开。我真正想要的是一个严格的模拟,但我现在正在动态运行它,这样我就可以使用以下验证来比较结果:

emailService.Verify(es => es.SendAsHtml(accountEmail, fromEmail, subject, expectedEmailString));

参数与 accountEmail、fromEmail 和 subject 匹配 - 它是 expectedEmailString(在测试方法中通过 string.Format 构建)似乎不起作用。我在测试时将预期值和实际值写入控制台,在查看输出时它们在构建服务器上看起来是相同的。这是测试失败(这是我试图强制进行序数比较的变体):

Expected invocation on the mock at least once, but was never performed: es => es.SendAsHtml(.accountEmail, .fromEmail, .subject, It.Is(s => s.Equals(.expectedEmailString, StringComparison.Ordinal))) No setups configured.

Performed invocations: IEmailService.SendAsHtml("user@test.com", "sender@email.net", "asdfasdf", "long html string")

以下是我认为的相关设置(全部直接注入(inject)到被测 Controller ):

    var getPersonalAccount = new Mock<IGetPersonalAccount>(MockBehavior.Strict);
getPersonalAccount.Setup(gpa => gpa.WithAccountId(userAccountId).Execute()).Returns(account);

var emailService = new Mock<IEmailService>();

var trialSettings = new Mock<TrialSettings>(MockBehavior.Strict);
trialSettings.Setup(ts => ts.Length).Returns(trialLength);
trialSettings.Setup(ts => ts.FromEmail).Returns(fromEmail);
trialSettings.Setup(ts => ts.Subject).Returns(subject);

主题和发件人地址由试用设置返回,收件人电子邮件地址从帐户中删除。消息正文也使用帐户中的值进行格式化。

相关位:

  • TeamCity 7.1(内部版本 23907)- 尝试了 nunit 2.5.10 和 2.6 测试运行者
  • .NET 4
  • NUnit 2.5.10.11092
  • 起订量 4.0.10827.0

最佳答案

因此,我最终只是删除了对巨大 HTML 字符串的“整个字符串”检查,并仅检查以确认我们注入(inject)到字符串中的值(通过 string.format)是否存在。这在本地和服务器上都通过。这并不理想,但我想这也不是世界上最糟糕的事情。

关于c# - 最小起订量问题 - 仅在构建服务器 (TeamCity) 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460426/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com