gpt4 book ai didi

c# - 单元测试的模拟对象

转载 作者:行者123 更新时间:2023-11-30 18:04:22 28 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Hard-Coded Mock Objects vs Mocking Framework

我想我终于开始理解单元测试旨在解决什么问题,但在实现所有细节时仍然遇到问题。我得出的结论是,我可能需要一个“模拟”对象(我很少使用这个术语,因为我不确定我是否需要像 Moq 这样的整个框架)对象来完成工作。

作为我一直遇到的问题的示例,请考虑存储库模式(或类似模式)的实现。据我目前了解,我需要(至少)对每个 Add()Get()Remove() 类方法。这很好,除非我想测试 Add() 方法如何处理 null 引用。在这种情况下,我是否只需要在测试项目中定义一个简单的类,并在适当的单元测试中将其实例设置为 null

示例单元测试(插图):

[TestMethod]
public void TestAdd_Null()
{
IRepository<MockObject> repository = (IRepository<MockObject>)(new Repository<MockObject>());
MockObject testObject = null;

repository.Add(testObject);

Assert.IsNotNull(repository.Entity);
}

// I'm thinking I should implement something like this exclusively within the Test project.
// Is this reasonable? Or should I be looking into something else?
internal class MockObject
{
public String Name { get; set; }
}

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