在xUnit网站上,关于构造函数有以下内容:
xUnit.net为每个运行的测试类创建一个新实例,因此放置在测试类构造函数中的任何代码都将为每个单独的测试运行。这使得构造函数成为放置可重复使用的上下文设置代码的方便位置,其中您希望共享代码而不共享对象实例(这意味着您会为每个运行的测试获得上下文对象的干净副本)。
我有以下代码:
xUnit.net为每个运行的测试类创建一个新实例,因此放置在测试类构造函数中的任何代码都将为每个单独的测试运行。这使得构造函数成为放置可重复使用的上下文设置代码的方便位置,其中您希望共享代码而不共享对象实例(这意味着您会为每个运行的测试获得上下文对象的干净副本)。
我有以下代码:
public class ProfilePageTest
{
public ProfilePageTest(Role role)
{
AuthRepository.Login(role)
}
[Theory]
[Roles(Role.Editor, Role.Viewer)]
public void OpenProfilePageTest(Role role)
{
var profile = GetPage<ProfilePage>();
profile.GoTo();
profile.IsAt();
}
}
是否可以将角色从理论属性传递到构造函数中,这样我就不必在每个测试方法中执行AuthRepository.Login(role)
了。
Login
方法是测试的一部分,在每个测试中编写它将为未来的读者/维护人员提供更多的价值,而不是将其干涸/隐藏在一个地方。 - Fabio