- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当运行以下测试时,所有断言都失败了。无法弄清楚为什么它们会失败,因为实际的实现确实有对对象的调用。
这是一个已知错误吗?因为其他一些测试确实成功了。
[Subject("Pst Cleanup")]
public class When_running_Pst_CleanUp
{
Establish context = () =>
{
_folders = A.Fake<IOutlookFolderParameters>();
_processor = A.Fake<IOutlookPstCleaner>();
};
Because of = () => _processor.Cleanup(_folders);
It should_cleanup_the_mail_folder = () => A.CallTo(() => _folders.EmailFolder).MustHaveHappened();
It should_cleanup_tasks_folder = () => A.CallTo(() => _folders.TaskFolder).MustHaveHappened();
It should_cleanup_appointments_folder = () => A.CallTo(() => _folders.AppointmentFolder).MustHaveHappened();
private static IOutlookPstCleaner _processor;
private static IOutlookFolderParameters _folders;
}
Assertion failed for the following call: Outlook.Contracts.IOutlookFolderParameters.get_NotificationsFolder() Expected to find it at least once but no calls were made to the fake object.
at FakeItEasy.Core.FakeAsserter.AssertWasCalled(Func
2 callPredicate, String callDescription, Func
2 repeatPredicate, String repeatDescription) at FakeItEasy.Configuration.RuleBuilder.MustHaveHappened(Repeated repeatConstraint) at UnitTests.When_running_Pst_CleanUp.<.ctor>b__2() in When_running_Pst_CleanUp.cs: line 19
最佳答案
这是 FakeItEasy 绝对正确的行为。您需要使用 IOutlookPstCleaner
的实际实现才能使您的测试成功。始终确保你伪造了正确的东西,不要意外伪造你的 SUT。
通过测试刚被调用的属性,您绝对不会测试任何有值(value)的东西。我也可以只为 IOutlookPstCleaner
编写这个实现,这样您的测试就会成功:
public class Cleaner : IOutlookPstCleaner
{
public void Cleanup(IOutlookFolderParameters folders)
{
var email = folders.EmailFolder;
var task = folders.TaskFolder;
var appointment = folders.AppointmentFolder;
}
}
如果您发布了IOutlookPstCleaner
的实现,我很乐意帮助您找到正确的测试对象。</p>
关于c# - 为什么 MSpec 中对 FakeItEasy 对象的 MustHaveHappened 调用失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15431542/
给定以下被测试的类(以及关联的 DTO 类和接口(interface)): public class Foo { private readonly IBar _bar; public
我正在尝试对“服务层”/“应用程序外观层”方法进行单元测试。这是我尝试进行单元测试的方法: // Create a new order in the database for a customer.
我有一个方法: public class MyClass { public ILogger _logger; public async void TestLogMethod(strin
当运行以下测试时,所有断言都失败了。无法弄清楚为什么它们会失败,因为实际的实现确实有对对象的调用。 这是一个已知错误吗?因为其他一些测试确实成功了。 [Subject("Pst Cleanup")]
我是一名优秀的程序员,十分优秀!