Comments (2)
@esfomeado
Hello, it is a tough question.
I need more time to figure out a better way to handle this.
For a while it is better to use a special ArbitrayIntrospector just like below with pushExactTypeArbitraryIntrospector
option.
public class MixedArbitraryIntrospector implements ArbitraryIntrospector {
public static final MixedArbitraryIntrospector INSTANCE = new MixedArbitraryIntrospector();
@Override
public ArbitraryIntrospectorResult introspect(ArbitraryGeneratorContext context) {
Map<ArbitraryProperty, CombinableArbitrary<?>> arbitraryListByArbitraryProperty =
context.getCombinableArbitrariesByArbitraryProperty();
return new ArbitraryIntrospectorResult(
ConstructorPropertiesArbitraryIntrospector.INSTANCE.introspect(context)
.getValue()
.map(instance -> {
for (Entry<ArbitraryProperty, CombinableArbitrary<?>> arbitraryByArbitraryProperty : arbitraryListByArbitraryProperty.entrySet()) {
Property property = arbitraryByArbitraryProperty.getKey()
.getObjectProperty()
.getProperty();
if (property instanceof CompositeProperty) {
property = ((CompositeProperty)property).getPrimaryProperty();
}
if (property instanceof ConstructorProperty) {
continue;
}
try {
if (property instanceof FieldProperty) {
((FieldProperty)property).getField()
.set(instance, arbitraryByArbitraryProperty.getValue().combined());
} else if (property instanceof PropertyDescriptorProperty) {
((PropertyDescriptorProperty)property).getPropertyDescriptor()
.getWriteMethod()
.invoke(instance, arbitraryByArbitraryProperty.getValue().combined());
}
} catch (Exception ex) {
// ignored
}
}
return instance;
})
);
}
}
Thank you.
from fixture-monkey.
@esfomeado
You can easily address it by new experimental feature in 0.6.12.
DataTest dataTest = fixtureMonkey.giveMeExperimentalBuilder(DataTest.class)
.instantiate(
Instantiator.constructor()
.field()
)
.sample();
from fixture-monkey.
Related Issues (20)
- 순환 참조가 있는 타입의 필드와 컬렉션 타입 필드가 함께 있을 때 간혈적으로 fixture 생성에 실패함 HOT 4
- Interface subtypes HOT 3
- [Kotlin] Primary Constructor에 포함되지 않는 프로퍼티 초기화 하는 방법 HOT 1
- 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 4
- 중복된 값이 허용하지 않는 필드에 고유한 값을 넣는 방법이 있는지 궁금합니다. HOT 4
- kotlin Lambda 함수 사용할 수 있는법 HOT 3
- How can I set a 'yyyyMMdd' date value in a String field? HOT 3
- Optional 값을 set 할 때 HOT 1
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.