JUnit для проверки того, как объект изменяется в середине процесса, а также окончательные утверждения ⇐ JAVA
JUnit для проверки того, как объект изменяется в середине процесса, а также окончательные утверждения
У меня есть частный метод, который используется несколькими процессами, и я пишу модульный тест для общедоступного метода, во время питеста мутация, которая удаляет вызов строки, сохраняется, поэтому ее можно исправить (не сообщая тесту игнорировать это мутация) Я хочу проверить, что объект обновляется определенным значением в середине процесса и другим значением в конце процесса. Возможно ли это?
публичный класс MyClass { публичный список publicMethod() { List mangos = apiCall(); PrivateMethod1 (манго); PrivateMethod2 (манго); вернуть манго; } Private void PrivateMethod1(List mangos) { mangos.forEach(манго -> { if(mango.getName("коренной") { манго.setAmount(100); манго.setQuantity(10); } }); } Private void PrivateMethod2(List mangos) { mangos.forEach(манго -> { if(mango.getName("коренной") { манго.setAmount(50); } } }); } В модульном тесте publicMethod() удален вызов mango.setAmount(100); сохраняется, поскольку он снова обновляется в PrivateMethod2, но PrivateMethod1 используется несколькими процессами, поэтому его не следует обновлять. В реальном сценарии в этих методах происходит несколько вещей, но для объяснения проблемы я использую простой метод установки для объекта. Вместо mango.setAmount(100); в реальном коде есть частный метод, который обновляет некоторые значения объекта.
Чтобы заставить pitest не игнорировать эту строку, я попытался использовать Mockito.verify(), чтобы проверить, что частный метод вызывается дважды, но mokito не позволяет нам проверять частные методы.
У меня есть частный метод, который используется несколькими процессами, и я пишу модульный тест для общедоступного метода, во время питеста мутация, которая удаляет вызов строки, сохраняется, поэтому ее можно исправить (не сообщая тесту игнорировать это мутация) Я хочу проверить, что объект обновляется определенным значением в середине процесса и другим значением в конце процесса. Возможно ли это?
публичный класс MyClass { публичный список publicMethod() { List mangos = apiCall(); PrivateMethod1 (манго); PrivateMethod2 (манго); вернуть манго; } Private void PrivateMethod1(List mangos) { mangos.forEach(манго -> { if(mango.getName("коренной") { манго.setAmount(100); манго.setQuantity(10); } }); } Private void PrivateMethod2(List mangos) { mangos.forEach(манго -> { if(mango.getName("коренной") { манго.setAmount(50); } } }); } В модульном тесте publicMethod() удален вызов mango.setAmount(100); сохраняется, поскольку он снова обновляется в PrivateMethod2, но PrivateMethod1 используется несколькими процессами, поэтому его не следует обновлять. В реальном сценарии в этих методах происходит несколько вещей, но для объяснения проблемы я использую простой метод установки для объекта. Вместо mango.setAmount(100); в реальном коде есть частный метод, который обновляет некоторые значения объекта.
Чтобы заставить pitest не игнорировать эту строку, я попытался использовать Mockito.verify(), чтобы проверить, что частный метод вызывается дважды, но mokito не позволяет нам проверять частные методы.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Окончательные ссылки на объект - гарантирована ли видимость между всеми потоками?
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-