gpt4 book ai didi

C#单元测试题

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

如果使用 xunit 可以实现以下代码(实际上是想法),有人会问吗:

public class RepositoryTester {

private IRepository repository;

public RepositoryTester(IRepository repository) {
this.repository = repository;
)

[Fact] // Analogue of [Test] in other test packages.
void CanDoWhatever() {
// Test code
}
}

现在,如果我尝试运行所有单元测试,只要 xunit 尝试通过调用 new RepositoryTester() 创建对象 RepositoryTester,它就会失败(它调用不带参数的构造函数)。

我想做的事情可以这样等价地表达:

var tester1 = new RepositoryTester(new SQLRepository(...));
var tester2 = new RepositoryTester(new InMemoryRepository(...));

tester1. RUN_ALL_TESTS();
tester2. RUN_ALL_TESTS();

有人知道以下行为是否可能吗?(我真的希望通过它的界面对每个可测试存储库使用相同的测试包)。

谢谢

最佳答案

您可以将 RepositoryTester 抽象化,并为每种类型的存储库创建一个派生类,在无参数构造函数中创建适当的 IRepository。继承的测试方法将为每个具体的子类运行。

关于C#单元测试题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4419813/

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