NUnit - 如何每次使用自定义设置测试操作两次
NUnit - how to test operation twice using custom setting each time
我想知道如何通过 NUnit 相同的操作正确测试。
每次调用都应将参数设置为静态 属性。我正在寻找类似的 TestCase
实现。
用法:
[DesktopTest, MobileTest]
public async Task ShouldA()
{
}
NUnit 使用 Playwright 框架。目的是使用不同的视口大小而不传递像
这样的参数
[TestCase("desktop")]
[TestCase("mobile")]
public async Task ShouldA(string device)
{
}
我目前的实施DesktopTest
public class DesktopTestAttribute : TestCaseAttribute
{
public DesktopTestAttribute() : base()
{
TestManager.SetDevice("desktop"); // static class
}
}
但是构造函数后跟 MobileTest
覆盖设备的构造函数。
如果我 运行 桌面目标,不设置移动设备的正确方法是什么?
您可以使用 TestFixture 继承:
public class TestManager
{
public static void SetDevice(string device) => Device = device;
public static string Device { get; private set; }
}
public abstract class BaseFixture
{
protected BaseFixture(string device)
{
TestManager.SetDevice(device);
this.device = device;
}
[Test]
public void ShouldA() => Assert.That(TestManager.Device, Is.EqualTo(device));
private string device;
}
[TestFixture]
public class DesktopTest: BaseFixture
{
public DesktopTest(): base("desktop") { }
}
[TestFixture]
public class MobileTest: BaseFixture
{
public MobileTest(): base("mobile") { }
}
我想知道如何通过 NUnit 相同的操作正确测试。
每次调用都应将参数设置为静态 属性。我正在寻找类似的 TestCase
实现。
用法:
[DesktopTest, MobileTest]
public async Task ShouldA()
{
}
NUnit 使用 Playwright 框架。目的是使用不同的视口大小而不传递像
这样的参数[TestCase("desktop")]
[TestCase("mobile")]
public async Task ShouldA(string device)
{
}
我目前的实施DesktopTest
public class DesktopTestAttribute : TestCaseAttribute
{
public DesktopTestAttribute() : base()
{
TestManager.SetDevice("desktop"); // static class
}
}
但是构造函数后跟 MobileTest
覆盖设备的构造函数。
如果我 运行 桌面目标,不设置移动设备的正确方法是什么?
您可以使用 TestFixture 继承:
public class TestManager
{
public static void SetDevice(string device) => Device = device;
public static string Device { get; private set; }
}
public abstract class BaseFixture
{
protected BaseFixture(string device)
{
TestManager.SetDevice(device);
this.device = device;
}
[Test]
public void ShouldA() => Assert.That(TestManager.Device, Is.EqualTo(device));
private string device;
}
[TestFixture]
public class DesktopTest: BaseFixture
{
public DesktopTest(): base("desktop") { }
}
[TestFixture]
public class MobileTest: BaseFixture
{
public MobileTest(): base("mobile") { }
}