Neigaard
Neigaard

Reputation: 4074

Matching a method signature with a unknown parameter in a mocked class

I have this method:

Future<Either<Failure, WorkEntity>> updateWorkEntity({int id, String title, TimeType timeType, int times, DateTime executed})

that is being called like this:

repository.updateWorkEntity(id: workEntity.id, executed: DateTime.now())

the id I can control in a test, but the "DateTime.now()" I ofcourse can not. What I tried was this in my test:

when(repository.updateWorkEntity(id: expected.id, executed: any)).thenAnswer((_) async => Right(expected));

to be able to make my mock return a object for my test, by using "any" in the place of the "DateTime.now()", but I get this error:

Invalid argument(s): The "any" argument matcher is used outside of method stubbing (via when) or verification (via verify or untilCalled). This is invalid, and results in bad behavior during the next stubbing or verification.

So I guess I can not use any here, but then how do I get my mock to return an object when I do not control one of the input parameters?

Thank you
Søren

Upvotes: 1

Views: 2433

Answers (1)

Benno Richters
Benno Richters

Reputation: 15703

Use executed: anyNamed('executed') instead of executed: any

Upvotes: 5

Related Questions