Backend
Executable but Unfaithful: Mock Object, Stub, and Assertion Generation by LLMs and Coding Agents
arXiv cs.SE0 views
arXiv:2610.14629v2 Announce Type: replace Abstract: Mocking is a foundational practice in unit testing, enabling developers to isolate the code under test by replacing real dependencies with simulated alternatives. Automating the generation of mock objects, stubs, and mock assertions has been a long-standing research goal. However, capture-and-replay approaches rely on recording the runtime behavior of actual dependencies. Evolutionary approaches such as StubCoder overcome this requirement but constrain generation to predefined symbol pools. Large language models (LLMs) and coding agents offer an alternative by generating mocking artifacts from source code without requiring recorded dependency executions or fixed symbol pools. Yet, no systematic study has evaluated their capabilities across all three artifact types. To address this gap, we construct MockBench, a benchmark comprising 165 mock artifact generation tasks from real-world Java and Python projects, with validated reference mock objects, stubs, and mock assertions. We evaluate six LLMs and three coding agents in terms of executability, behavior fidelity, and interaction-fault detection capability, complemented by comparisons with existing tools and sensitivity analysis. Experimental results show that LLMs and coding agents indeed have been the state-of-the-art techniques in mock-based testing. More specifically, compared with LLMs, coding agents substantially improve executability, while these gains do not consistently translate into higher behavior fidelity or better interaction-fault detection. Furthermore, we analyze 660 failures from LLMs and coding agents, and identify ten error types across the three artifact categories, revealing behavioral deviations that passing tests can conceal. Our findings highlight the challenges of mock artifact generation and provide practical guidance for both developers and researchers.
Source:https://arxiv.org/abs/2610.14629PreviousRefactoring React Component Hierarchies to Eliminate Prop DrillingNextAre LLM Safety Judges Policy-Invariant? A Three-Principle Stress-Test
Related posts
Mocking a 410 Gone for a Retired Resource vs a Plain 404
0dev.to
Three MCP Python SDK Advisories, and the One an Upgrade Will Not Fix
0dev.to
We Benchmarked GPT-Image-2.6 Native <svg> Output: Path Counts, Cost & Real Edge Cases
0dev.to
When an MCP Tool Needs a Missing Value: Elicitation vs Failing the Call
0dev.to
Your Live Stream Is Playing. Is It Still Live?
0dev.to
Coconut oil is heat or cold for the body
0dev.to Watercooler