mirror of
https://github.com/alibaba/testable-mock.git
synced 2026-08-19 09:43:29 +08:00
8.8 KiB
8.8 KiB
Release Note
0.7.8
- support use
OmniConstructorclass to create instance of interface type or abstract class - provide a
CollectionUtilclass which contains many utility collection creation methods - fix a compatibility issue with jdk 1.6
0.7.7
- skip bytecode process for classes which not associated to any mock class, speed up test initialization
- only generate substitution method for mocked method references
- fix compatibility issues with jdk 17
0.7.6
- define package mapping rule according to order in config, to avoid a short path overwrite longer ones
- fix compatibility issue with jdk 9+
- skip classes generated by mockito during
OmniConstructorbytecode enhancing
0.7.5
- fix an issue cause mocking method with array return type fails
0.7.4
- fix an
OmniConstructor.newInstance()fail issue caused byjava.net.URLclass cannot be instrumented
0.7.3
- fix an issue cause mock failed with referring to method defined in interface
0.7.2
- fix an issue cause mock failed with static method reference
0.7.1
- fix an issue cause mock class unrecognized after package-mapping
0.7.0
- fix an improper exception issue when mock method with
associatedscope invoked - rename type
InvokeVerifier/InvockeMatchertoInvocationVerifier/InvocationMatcher - rename method
verifyinInvocationVerifiertype toverifyInvoked - rename annotation
@MockMethod/@MockConstructorto@MockInvoke/@MockNew
0.6.10
- support mock invocation via function reference
- support mock method defined in a base interface
0.6.9
- support mock invocation in lambda method
- fix a
NullPointerExceptionissue whenPrivateAccessor.invoke()hasnullparameter
0.6.8
- support
@DumpToannotation to dump bytecode of any transformed class PrivateAccessor.setStatic()method now able to update static final members
0.6.7
- support empty mock container class which has all mock methods in its parent
- fix an issue cause mock fail when parameter has array element accessing
0.6.6
- support global package path mapping for easier mocking code of 3rd packages
- complete mock target checking, improve resistance to code refactoring
- fix a log disorder issue of mock class handler
- fix an error of creating
LongorIntegerclass withOmniConstructorin certain jvm version
0.6.5
- fix an issue cause
OmniConstructorfail to handle classes like Date and BigDecimal - fix an issue of
PrivateAccessorfail to invoke method with single array parameter - fix an issue of mock methods in super class are ignored when
scopeisassociated - fix an issue of empty mock method not works when
scopeisassociated
0.6.4
TestableNullclass removed, letOmniConstructoreven lighter- support
@Nestedannotation of JUnit 5 - fix several
OmniConstructorcompatibility issues(thanks to @ddatsh)
0.6.3
- support custom inner
Mockclass name - support skip specified packages from
OmniConstructorenhancement - fix 2 circle construction cases in
OmniConstructor - fix an index out-of-range issue caused by non-static method without
thisreference - fix a null pointer exception caused by resource folder unavailable at runtime
0.6.2
- support setup global testable agent configure via properties file
- disable OmniConstructor bytecode enhancement by default
- fix a
Springframework compatibility issue with OmniConstructor
0.6.1
- generate mock scanning log file automatically, for self-troubleshooting
- fix a
Spocktest framework compatibility issue - fix a
Gradleunit test runtime compatibility issue
0.6.0
- add
OmniConstructorandOmniAccessortool for parameter preparation - fix a
ClassFormatErrorcaused by incorrectFRAME FULLoperation - remove support for
diagnoseparameter of@MockWithannotation
0.5.2
- support use
PrivateAccessorto access private member in parent class - fix a class format error in jvm 1.8+ cause by incorrect bytecode generation
- fix illegal field modifiers error when add mock class to an interface
0.5.1
- use kotlin-style method descriptor in
VERBOSEdiagnose logs - support parameterized test of JUnit 5
- fix an exception caused by method parameter with ternary operator
- fix a bug cause log message lost when
@MockWithannotation used
0.5.0
- split test class and mock class, let the mock class and method reusable
- support use mock when package path of the test class is different from the class under test
- support limit the mock effective scope to the cases of class under test it bound
- use
TransmittableThreadLocalto store mock context - add annotation
@MockDiagnoseto print debug logs
0.4.12
- support verbose diagnose log for better self-troubleshooting
- support disable private access target existence check
- support specify mock scanning packages
- fix an ArrayIndexOutOfBoundsException issue when transforming native method
0.4.11
- support accessing private members of class under test in different package path
- validate the number of private method parameters accessed by
PrivateAccessor - fix a bug which may cause errors when the mock method contains array parameters
- fix an issue which cause some private members not be found in the IntelliJ build
0.4.10
- fix an issue of using mock in lambda expression
- fix the NullPointerException when invoke private method with parameter value
null
0.4.9
- fix an issue cause by improperly bytecode processing while using
targetClassparameter - auto validate access target of
PrivateAccessor, improve resistance to code refactoring
0.4.8
- fix an issue of private method invocation failed in assignment statements
- support using mock for testing with
SpringRunner - support
targetClassparameter in@MockMethodannotation
0.4.7
- fix incorrect stack size caused by
MOCK_CONTEXTvariable initialization - fix incorrect gradle build path of under Windows operating system
0.4.6
- fix an issue of
IINCbytecode processing - support
TestableTool.MOCK_CONTEXTvariable to inject extra parameters to mock context - use
TestableTool.TEST_CASEvariable to distinguish test case is no longer recommended
0.4.5
- fix private access compile error in intelliJ 2020.3+ environment
- change javaagent initialization logic to avoid NPE in cross-layer test scenario
- support dump transformed byte code to local file for issue investigation
0.4.4
- fix an issue of accessing private method with interface type parameter fail
- fix an issue of mocking static method without parameter fail
0.4.3
- support static private member access
0.4.2
- support change javaagent global log level via maven plugin
- fix an issue of duplicate test class injection
- fix an issue cause multiple-line method invocation mock fail
0.4.1
- deprecate @TestableMock annotation, use @MockMethod and @MockConstructor instead
0.4.0
- fix a jvm 9+ compatibility issue cause by default classloader change
- fix a conflict issue when testcase name duplicated between different class
- refactor code structure, module
testable-alladded - separate constant definition from
TestableTooltoTestableConst
0.3.2
- support gradle project for both private member access and quick mock
- support access private static field and methods via PrivateAccessor
0.3.1
- support detail log of mocking process for diagnosis
v0.3.0
- add
without()checker to verify mock method never invoked with specified parameters - support fuzz matcher when verifying mock invocation
v0.2.2
- support mock method parameters check
- fix a compatibility issue with jvm 9+
v0.2.1
- support mock static method
- support mock kotlin companion object method
- support mock invoke by an interface / base class object
v0.2.0
- use
TestableToolclass to expose test context and verify mock invoke - add
testable-maven-pluginmodule to simplify javaagent configuration - remove dependence on
@EnableTestableannotation intestable-agent - rename annotations to reflect the actual use
v0.1.0
- move generated agent jar to class folder
- support mock method of any object
v0.0.5
- use dynamically runtime modification to replace static
e.javafile - get rid of unit test framework dependence
- add testable ref field in test class at runtime instead of compile time
v0.0.4
- use runtime byte code rewrite to invoke testable setup method
- add
TestableUtilclass to fetch current test case and invocation source
v0.0.3
- use global method invoke to access private members instead of modification in place
- use
e.javareplacetestableclass make code more readable - introduce
agentmodule, use runtime byte code modification to support new operation and member method mocking
v0.0.2
- add support of member method mocking by compile time code modification
v0.0.1
- PoC version
- use compile time code modification to support new operation mocking and private field & method access