gpt4 book ai didi

c# - 使用 Rhino Mocks 变干

转载 作者:太空狗 更新时间:2023-10-29 21:20:31 25 4
gpt4 key购买 nike

我正在寻找使以下内容更简洁的方法。

public class MyTests
{
IPresenter presenter;

[SetUp]
public void SetUp()
{
presenter = MockRepository.GenerateStub<IPresenter>();
}

...
}

特别是在创建模拟时再次指定类型似乎是多余的。例如,我可以这样写并使用反射来获取类型并自动创建 stub :

public class MyTests
{
IPresenter presenter;

[SetUp]
public void SetUp()
{
Stub(x => x.presenter);
}

void Stub(Expression<Func<MyTests, object>> expression)
{
...
}
}

这可行,但编译器无法再检测到演示者已分配并开始发出警告。这也让ReSharper很不爽。

谁能提出更好的方法?

最佳答案

这可能会引起争议,但我更喜欢可读性,而不是单元测试中的 DRY-ness*。

换句话说,我的单元测试中不存在设置方法。它们仅用于集成测试。我相信XUnit.NET也持这种立场。

因此,为了回答您的问题,我真的不会担心在需要模拟演示的每个测试中设置模拟演示。某些测试可能不需要模拟演示者,因此无需在测试运行前进行设置。

**自然地,我的单元测试平均跨越十行,如果这增加或设置测试的范围(遵循 AAA - 安排,行动断言)很大,只有这样我才会删除重复并创建辅助方法.为了清楚这一点,为了更清晰的测试,您可以创建一个包含辅助方法和其他设置代码的基测试类。*

关于c# - 使用 Rhino Mocks 变干,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2158477/

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