Comments (5)
I have tried your solution. but i think it does not work.
sample code repo: null-inject-test branch
@Data
public static class JetBrainAnnotationObject {
@org.jetbrains.annotations.NotNull
private String value;
@ConstructorProperties({"value"})
public JetBrainAnnotationObject(String value) {
this.value = value;
}
}
FixtureMonkeyTestSpecs.JetBrainAnnotationObject jetBrainAnnotationObject = FixtureMonkey.builder()
.objectIntrospector(ConstructorPropertiesArbitraryIntrospector.INSTANCE)
.pushNullInjectGenerator(
new MatcherOperator<>(
property -> {
boolean present = property.getAnnotation(NotNull.class).isPresent();
return present;
},
context -> NOT_NULL_INJECT
)
)
.build()
.giveMeOne(FixtureMonkeyTestSpecs.JetBrainAnnotationObject.class);
If i check the result of property.getAnnotation(NotNull.class).isPresent();
it is always false
.
property
does not have jetbrain @NotNull
annotation in annotationMap
.
from fixture-monkey.
@jbl428
Yes, it sounds great.
If you don't mind, could you make a PR for removing annotations whose retention policy is CLASS
in DefaultNullInjectGenerator
?
It would be very helpful.
from fixture-monkey.
@jbl428
Hello, I think you'd better to use pushNullInjectGenerator
option.
You could use this option as below.
.pushNullInjectGenerator(
new MatcherOperator<>(
property -> property.getAnnotation(NotNull.class).isPresent(),
context -> NOT_NULL_INJECT
)
)
It would be worked for all properties have @NotNull
.
If you have any more questions, please feel free to ask.
from fixture-monkey.
@jbl428
As I know, @org.jetbrains.annotations.NotNull
is an annotation for IntelliJ IDEA's static analysis, not for validation.
Due to its purpose, It could not be captured in runtime.
I think It is better to use Bean Validation annotations.
Are there any reasons for using @org.jetbrains.annotations.NotNull
instead of Bean Validation annotations?
from fixture-monkey.
@seongahjo
My project is written in Java for the entity classes and uses kotiln for the business logic.
To take advantage of kotiln's null safety, each entity's properties must be annotated to satisfy JSR305 (like @org.jetbrains.annotations.NotNull
)
I found that org.springframework.lang.NonNull
is another jsr305 compliant annotation and the retention policy is RUNTIME
, so I could use this annotation.
My suggestion is to remove annotations whose retention policy is CLASS
in DefaultNullInjectGenerator
.
What do you think?
from fixture-monkey.
Related Issues (20)
- 내부 value class 프로퍼티의 생성자가 private 일 경우 테스트 객체 생성에 실패합니다. HOT 2
- Fail test depending on the constructor declaration order HOT 1
- ask; Setting Super Class Property Values in Kotlin HOT 2
- When attempting to create an instance of a Kotlin class containing a Java reference type class property, the creation fails HOT 1
- Minor bugs on the newly added translated docs HOT 1
- Class changes when setting value HOT 3
- FieldReflectionArbitraryIntrospector 사용시 Getter, Setter 없이 Fixture 생성 질문드립니다. HOT 6
- I want fields to be injected with a Kotlin Duration type HOT 2
- Jqwik Usage Survey
- JakartaValidationPlugin을 사용하는 경우에, 유효하지 않은 값으로 커스터마이징 할 수 있나요? HOT 2
- 무조건 getX, setX로 사용해야하나요? HOT 1
- Call for first Fixture Monkey Meetup participants
- Implement InnerSpec Kotlin DSL HOT 6
- Jpa 연관관계가 있는 엔티티를 생성하려면 어떻게 하면될까요? (해결했습니다.)
- Version 1.017 is not available on maven central HOT 1
- 한국어 문서에 잘못된 링크가 있는 것 같습니다. HOT 1
- 1.0.17 버전에서 SimpleValueJqwikPlugin 사용시 Set<Integer> 의 임의값이 생성되지 않습니다. HOT 1
- setPostCondition stuck in infinite loop HOT 2
- Print seed if test fails in JUnit HOT 5
- 중복된 값이 허용하지 않는 필드에 고유한 값을 넣는 방법이 있는지 궁금합니다. HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fixture-monkey.