我需要为我的每个单元测试都设置一个已登录的用户,这就迫使我在测试SetUp
中进行异步调用(即登录)。
我找不到一种方法来使这个工作,我要么得到空指针异常,要么得到设置无效的签名。
public async void SetUp() {}
这使得我的所有测试都失败了,可能是因为我没有登录。
public async Task SetUp() {}
由于设置具有无效的签名,导致我的所有测试都被忽略。
我不想在每个测试中复制 X 行设置,因为它们完全相同,并且这就是设置的作用。
我错过了什么?这似乎是一个微不足道的问题。
为了展示一些内容,以下是我现在拥有的内容。
CreateTicketViewModel _viewModel;
[SetUp()]
public async void SetUp() //I have tried using Task instead of void
{
IUserService userService = Dependency.Instance.Resolve<IUserService>();
await userService.LoginAsync(this.UserName, this.Password);
_viewModel = Dependency.Instance.Resolve<CreateTicketViewModel>();
}
[TearDown()]
public void TearDown()
{
_viewModel = null; // I have tried removing this
}
[Test()]
public void Initialization()
{
// If I put what's in SetUp here and add "async" before void,
// it works just fine
Assert.IsNotNull(_viewModel);
Assert.IsNotNull(_viewModel.Ticket);
}
IUserService
吗? - Sriram Sakthivel