我写了一些代码
def get_stuff(input):
for a, b in itertools.zip_longest(input, input):
# do some processing
yield a, b
它目前被称为get_stuff(sys.stdin),但将来可能会改为get_stuff(some_file_I_opened)。我使用zip_longest的原因是将读取分块成对(即:一次读两行)。我想在我的测试中模拟input,但我似乎无法让这个模拟能够很好地处理itertools.zip_longest。
我现在的模拟代码:
de
我对嘲弄比较陌生,我想我对PHPunit模拟是如何工作的以及它们应该如何使用有一个根本的误解。我的SUT (要测试的主题)包含一个类,它不是默认的-可构造的,我想用模拟替换单个方法。
让我们假设我想要模拟的类如下所示
class MyClass {
protected int $someValue;
protected string $anotherValue;
public function __construct(array $param1, int $param2) {
// does something, among other things
// ini
我需要测试一个扩展抽象类并使用它的受保护方法的类。代码如下:
public class DataDaoImpl extends SuperDao<CustomClass>
{
public List<Long> findAllbyId(Long productId)
{
Session session = getCurrentSession();
.......
//Rest of code
}
}
下面是抽象类的代码:
public abstract class SuperDao<T>
{
p
是否有一种带有嘲讽的方法来断言被模拟的对象应该返回某个类实例?一个受攻击的物体应该如何实现这一点?
假设我使用的是一个模拟的实体管理器+存储库,它返回一个模拟的MyClass对象。
我正在测试一个工作类,它应该返回一个MyClass实例(显然不是一个模拟的Myclass),使用存储库。
问题是,当我注入模拟的实体管理器+存储库时,它使用的是一个MockedMyClass实例,而当存储库“从db中获取内容”时,它返回MockedMyclass对象,仅仅是因为模拟存储库返回一个模拟对象。
我应该如何创建这样的测试?作为参考,下面是我如何创建模拟对象的方法
protected function ge
我有一个类模拟数据库功能,而不是子类Mock或MagicMock,因为它定义了自己的__init__方法:
class DatabaseMock():
def __init__(self, host=None):
self.host = host
self.x = {}
# other methods that mutate x
有一个函数我想测试,它对真实的数据库进行API调用,所以我修补了它:
class TestFunctions():
def test_function(self):
with patch(
我们使用Varien_Http_Client从Magento扩展发出http请求,如下所示:
public function callApi(…)
{
<SNIP>
// Set default factory adapter to socket in case curl isn't installed.
$client = new Varien_Http_Client($apiUri, array(
'adapter' => 'Zend_Http_Client_Adapter_Socket',
当级联模拟返回Optional时,行为是什么?我的期望是。
然而,下面的测试表明,情况并非如此:
@RunWith(JMockit.class)
public class CascadingTest {
public static interface Foo {
Optional<Bar> getOptionalBar();
}
public static interface Bar {
}
@Test
public void cascadingOptional(@Mocked final Foo foo) {
我的代码中有一个使用第三方库的类。我想通过调用库类的实例方法来模拟我获得的对象的实例方法。我不清楚如何模拟这个内部对象的实例方法。以下是我的代码:
我的班级:
from a import A
class MyClass(object):
def __init__(self):
self.obj = A()
def do_something(self):
b = self.obj.get_inner_object()
result = b.do_inner()
return result
这是我的考试课:
fro
如何在下面的实现中模拟getter-setter方法?
MyClass obj=new MyClass();
obj.getName().setFirstName("hello"); // How to Mock this part ?
测试
@Mock
MyClass obj;
@Test
void testing(){
doNothing().when(obj).getName().setName(anyString()); //this doesn't work
}
我试图使用JUnit和Mockito来模拟端到端的方法(addSomething方法)。很明显,在这个方法中,我使用了其他方法。我的怀疑是:
为了模拟端到端的方法,我也需要模拟其他方法,对吗?
如何模拟addSomething方法中的方法?
我想要的一个简单例子是:
方法A
public int summing(int sum){
int A = 5;
int B = 23;
sum = SumOfIntegers(A,B);
return sum;
}
方法B
private int SumOfIntegers(int number1, int number2){
我正在尝试为HttpClient服务编写一些单元测试,但在尝试模拟GetAccessToken()函数中的部分代码时遇到了一个问题。
该服务接受一个IHttpClientFactory。从我到目前为止所做的阅读,似乎为了正确地模拟它,我必须模拟IHttpClientFactory,让它返回一个依赖于模拟的HttpMessageHandler的新HttpClient,我这样做了:
var mockHttpClientFactory = new Mock<IHttpClientFactory>();
var mockHttpMessageHandler = new Mock<H
我的结构如下:
class A {
public A(String p){
// ...
}
public String AMethod(String p){
// ...
}
}
class B {
int method(String param){
A a = new A(param); int n;
String s = A.AMethod(param);
// ... (initializes n, ...)
return n;
}
}