C# 在不同平台之间切换

C# 在不同平台之间切换,c#,sqlite,automation,C#,Sqlite,Automation,我正在使用SQLite数据库为不同的C平台编写测试脚本,以实现自动化。测试脚本对于其他平台是不同的,我需要将它写在同一个文件中。我无法找出在平台之间切换的最佳方式平台是来自不同供应商的音乐播放器。目前,我正在使用全局常数进行相同的计算,但这不是最好的方法。 如: 差不多 bool TestCase1() { //functionality which is common among all platforms if (PlatformA) { //do

我正在使用SQLite数据库为不同的C平台编写测试脚本,以实现自动化。测试脚本对于其他平台是不同的,我需要将它写在同一个文件中。我无法找出在平台之间切换的最佳方式平台是来自不同供应商的音乐播放器。目前,我正在使用全局常数进行相同的计算,但这不是最好的方法。 如: 差不多

bool TestCase1()
 {
    //functionality which is common among all platforms
    if (PlatformA)
    {
        //do this
    }
    else if (PlatformB)
    {
        //do this
    }
    else
    {
        //do this
    }
    return result;
 }

请建议进行切换的最佳方式。我正在寻找通用的方法,以便将来如果新平台出现并具有类似的功能,那么就不需要编译代码。

标准方法是使用依赖项注入反转控制技术注入的接口

根据您正在编程的ASP、UWP平台,有几种现成的IoC可用。。他们通常会在开始时注册一个接口或实例来做一些事情,然后应用程序使用代码契约的抽象来做这些事情。这通常是一个抽象类或接口。您是否需要在运行时更改或同时使用两个选项,即一个回退方法

当您进行单元测试时,可以使用模拟框架对这两个测试进行测试,MOQ是其中一个做得很好的测试

如果你做集成测试,你会/可能会为每个实现写两个测试。有了2个测试,就可以更容易地对正在测试的内容进行反驳,并使被测试的代码更加稳定


希望有助于考虑使用策略模式