我是一个Java/C程序员,正在为一个附带项目开始使用一些Python。我为我正在进行的一个附带项目编写了一些单元测试,但我怀疑我只是在编写Java代码,并将其翻译成Python。
我贴出了我写的一些单元测试的一个小样本。对于如何使代码更加Pythonic (最佳实践、约定等),我非常感激。
import unittest
import urllib2
from connectionstate import ConnectionState
class Test(unittest.TestCase):
"""Unit tests for the Connection
我有一个类,它定义了一个“验证”方法,不幸的是,这个方法的名称与MiniTest::Mock用于验证方法调用的名称相同。我遇到了一个严重的问题。
我的类定义如下。
class Reader
def initialize(verifier)
@verifier = verifier
end
def verify(subject)
@verifier.verify(subject)
end
end
class Verifier
def verify(subject)
subject != nil
end
end
我的测试设置如下。
class T
我想嘲弄subprocess.Popen。然而,当我运行下面的代码时,模拟将被完全忽略,我不知道为什么
测试代码:
def test_bring_connection_up(self):
# All settings should either overload the update or the run method
mock_popen = MagicMock()
mock_popen.return_value = {'communicate': (lambda: 'hello','world')}
with
我在TestCase中有大量的测试。我希望设置一个模拟对象,该对象在大多数测试中返回相同的值,但在一些测试中,我希望自定义该值。
我的想法是创建一个set_up()方法(我无法在自动调用的setUp()中设置期望),并在每个测试开始时手动调用它。在这个方法中,我将设置默认的返回值,然后在一些需要自定义返回值的测试中,我将第二次调用expects,并希望覆盖默认的返回值。这不起作用,返回值不会被覆盖。
下面是一个简化的示例:
<?php
class SomeClass {
function someMethod() {
}
}
class SomeTest extend
我通常使用unittest.mock.Mock的wraps功能来创建功能齐全的间谍对象。
下面是一个运行时运行良好的示例:
from threading import Event
from typing import Union
from unittest.mock import Mock
spy_event: Union[Mock, Event] = Mock(wraps=Event())
spy_event.set()
assert spy_event.is_set()
# How can I type hint so this error doesn't show up f
我使用Moq编写了下面的类和测试类:
public class Mytest : testin
{
public int getId(int id)
{
int s = 2;
return s;
}
}
考试班:
private Mock<testin> _mock;
[TestInitialize]
public void Setup()
{
_mock = new Mock<testin>();
}
[TestMethod]
public void returngetId()
{
// Bui
我有一个控制器类,它在运行时注入ctor中的多个参数。
示例:
public ProductController(IProductRepositort productRepository,
IShippingService shippingService, IEmailProvider emailProvider)
{
...
}
我发现测试方法正变得越来越庞大。我现将这些方法设置如下:
[Test]
public void CanSendProduct()
{
//Code to set up stub
List<
在我的ubuntu 18机器上,我不能运行最新的本地堆栈的码头映像。即使结束消息显示为“就绪”,我仍然不能使用以下命令访问它。
awslocal --endpoint-url=http://localhost:4575 sns list-topics
Could not connect to the endpoint URL: "http://localhost:4575/"
docker运行本地堆栈/local堆栈也显示了一个错误:Errno 13权限被拒绝:
docker run localstack/localstack
Waiting for all Local
所以我一直在尝试让这些工具一起运行,但我似乎无法正确地进行设置。每次我看到下面的错误:
The project was not built since its build path is incomplete. Cannot find the class file for org.spockframework.mock.MockController. Fix the build path then try building this project.
我已经创建了这个。当我运行gradle chrome测试时,我得到以下输出:
gradle chrome test
:compileJava
我正在尝试为我们的存储库/工作单元框架设置单元和集成测试。在引入导航属性之前,模拟查询工作得很好。下面的代码运行良好:
var customers = (from cus in Customers.GetAll()
join acm in AccountManagers.GetAll() on cus.INS_Id equals acm.INS_Id
join the in Employees.GetAll() on acm.THE_Id equals the.THE_Id
我有一个文件夹,其中包含大量来自各种来源的文件,主要是照片和视频。我在Excel中还有一个表,其中包含两列:一列具有存储在文件夹中的这些文件的原始名称,另一列具有要重命名的新名称。 我的问题是:如何使用Excel中的表作为引用列表来重命名存储在该文件夹中的文件? library(tidyverse)
# The original files of the photos are stored in a folder
current.folder <- "C:/Users/Tests/Desktop/Field_photos_2019"
# Produce a tabl
我为一个函数创建了一个单元测试,但是当从flatRepository找到实体时,它会返回:
未找到me.flatkeepr.exception.ResourceNotFoundException:平面1
在me.flatkeepr.service.TaskService.lambda$create$2(TaskService.java:54) at java.base/java.util.Optional.orElseThrow(Optional.java:408) at me.flatkeepr.service.TaskService.create(TaskService.java:54)
我有一个单元测试,它验证一个函数是否向实体框架数据集添加了一条记录,如下所示:
var internals = new Mock<DbSet<InternalTransaction>>();
internals.Setup(q => q.Create()).Returns(new InternalTransaction());
var mockDC = new Mock<IDataContext>();
mockDC.Setup(q => q.InternalTransactions).Returns(internals.Object);
/
我试图模仿Spring的MessageSource.getMessage方法,但是Mockito --它是在抱怨一个无用的消息,我使用的是:
when(mockMessageSource.getMessage(anyString(), any(Object[].class), any(Locale.class)))
.thenReturn(anyString());
错误信息是:
You cannot use argument matchers outside of verification or stubbing.
Examples of correct usage of argum
我试图像这样模拟PortalUtil.getPortal()方法
PowerMock.mockStatic(PortalUtil.class);
Portal mockPortal = Mockito.mock(Portal.class);
Mockito.when(PortalUtil.getPortal()).thenReturn(mockPortal);
我得到了以下错误
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to b