mmp*_*ogr 1 java junit spring unit-testing spring-boot
这是单元测试的正确本质吗?我想我不明白应该测试什么.ConverterContext是一个策略类
@SpringBootTest
@ExtendWith(SpringExtension.class)
class ConverterContextTest {
@Autowired
private final ConverterContext converterContext;
@Autowired
private final ConverterRegisterUserDto created;
@Autowired
ConverterContextTest(ConverterContext converterContext, ConverterRegisterUserDto created) {
this.converterContext = converterContext;
this.created = created;
}
@Test
void converterContextGivesCorrectConverter(){
ConverterRegisterUserDto returned = converterContext.getConverter(ConverterRegisterUserDto.class);
assertEquals(returned, created);
}
@Test
void converterContextGivesIncorrectConverter(){
ConverterShowUserDto returned = converterContext.getConverter(ConverterShowUserDto.class);
assertNotEquals(returned, created);
}
}
Run Code Online (Sandbox Code Playgroud)
在单元测试中,您希望避免加载弹簧引导上下文.所以要实例化你自己ConverterContext.
如果ConverterContext您需要隔离某些依赖项,则可以模拟它们(请参阅Mockito库).
此外,您不需要自动装配预期的.
它将使您的测试执行更快,更易于阅读.
请注意,您的代码ConverterContext显示为工厂而非策略.
关于测试的逻辑,我认为不需要第二次测试.
你要检查的是工厂返回它的返回目的.
断言实际不等于愚蠢的预期是完全没用的.这就像你需要主要的死代码......
实际上,就像你add(1,1) == 2在第一次测试中断言并且在第二次测试中你断言那样 add(2,1) != 2.
为什么不断言所有愚蠢的预期不相等?
add(2,1) != 4, add(2,1) != 5, add(2,1) != 6,我们可以去一个很长的时间....
我希望单元测试看起来像(我用JUnit 5的方式来说明):
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.Mock;
import org.junit.jupiter.api.extension.ExtendWith;
@ExtendWith(MockitoExtension.class)
class ConverterContextTest {
ConverterContext converterContext;
@Mock
FooDep fooDep;
@Mock
BarDep barDep;
@BeforeEach // or @Before in JUnit 4
void init{
converterContext = new ConverterContext(fooDep, barDep);
}
@Test
void converterContextGivesCorrectConverter(){
// mock which is required
/...
assertEquals(new ConverterRegisterUserDto(), converterContext.getConverter(ConverterRegisterUserDto.class));
// mock which is required
/...
assertEquals(new ConverterShowUserDto(), converterContext.getConverter(ConverterShowUserDto.class));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |