Testing 测试颤振行为主题

Testing 测试颤振行为主题,testing,flutter,mockito,Testing,Flutter,Mockito,这是我正在尝试测试的服务 class AccountService{ 授权图书馆(AuthLibrary);; 行为主体——用户; Stream get user=>\u user.Stream.asBroadcastStream(); AccountService(此.\u库):\u user=BehaviorSubject(){ checkUserLogin(); } Future checkUserLogin()异步{ final token=wait_library.getToken()

这是我正在尝试测试的服务

class AccountService{
授权图书馆(AuthLibrary);;
行为主体——用户;
Stream get user=>\u user.Stream.asBroadcastStream();
AccountService(此.\u库):\u user=BehaviorSubject(){
checkUserLogin();
}
Future checkUserLogin()异步{
final token=wait_library.getToken();
最终令牌长度=令牌?长度??0;
返回_user.add(tokenLength>0?用户(token:token):null);
}
}
这是我的测试:

类MockAuth扩展Mock实现AuthLibrary{}
main(){
AuthLibrary\u auth0;
setUpAll((){
_auth0=MockAuth();
});
test('set user if token not empty',()异步{
最终预期=用户(令牌:“21398712938721”);
当(_auth0.getToken()).thenAnswer(_)async=>expected.toString());
最终服务=AccountService(_auth0);
验证(_auth0.getToken())。调用(1);
expect(service.user,emits(expected));
});
}
我在网上找不到如何通过这次考试。我发现的每个例子都使用相同的模式,但由于某种原因,它在这里失败了。 因此,当我运行测试时,会出现以下错误:

应为:应发出一个
实际:
其中:“用户”的实例

您是否为User和它包含的其他类实现了
操作符==
hashCode
?不,我没有,应该吗?因为它仍然看起来测试将有类型为User的Observable,而不是Useraaandd。你说得对!这就解决了问题。非常感谢。