我是 C# 新手,我正在使用 Visual Studio 2012 中内置的测试支持来为新库采用测试驱动开发。我已经为 USB SPI 适配器实现了一些测试用例,并发现自己为每个测试用例复制了大量“启动”和“拆卸”代码。我习惯使用 python pytest 及其“固定装置”来帮助减少重复的测试代码。到目前为止,我还无法找到与 C# 和 Visual Studio 类似的概念。
考虑以下情况,其中多个测试用例必须在每次运行测试时列出并关闭 SPI 端口。如何创建相当于“夹具”的东西,在其中编写一次启动和拆卸代码以便与每个测试用例一起运行?谢谢。
namespace CheetahTestSuite
{
[TestClass]
public class CheetahTest
{
[TestMethod]
public void TestOpenPort()
{
// Ask the system for the Cheetah devices found on the system
CheetahSPI spi = new CheetahSPI();
string found_devices = spi.ListDevices("not used");
...
// Close the port
string close_success = spi.ClosePort();
Assert.AreEqual(close_success, "0,OK");
}
[TestMethod]
public void TestConfigureSPIPort()
{
// Ask the system for the Cheetah devices found on the system
CheetahSPI spi = new CheetahSPI();
string found_devices = spi.ListDevices("not used");
....
// Close the port
string close_success = spi.ClosePort();
Assert.AreEqual(close_success, "0,OK");
}
}
}
我尝试使用 C# 和 Visual Studio 研究装置。我期望有一种方法来实现“固定装置”以减少重复的代码。
要使用常见的初始化和反初始化代码,请使用构造函数和 Dispose 方法:
[TestClass]
public sealed class CheetahTest : IDisposable
{
private CheethSpi _testee;
public CheetahTest()
{
_testee = new CheetahSPI();
string found_devices = _testee.ListDevices("not used");
// ... more init code
}
[TestMethod]
public void Foo()
{
_testee.DoSomeTest();
}
public void Dispose()
{
_testee.Dispose();
}
}