我使用的是ORM,获取记录对象的方法是使用FooModel::find(1)。FooModel有一个我需要模拟以进行测试的方法。我该怎么做呢?(不能使用PHPUnit mock,因为这样会得到一个与ID为1的记录不对应的模拟FooModel。)
编辑
示例:
class FooModel
{
// ORM model that fetches record from the DB
public function thisNeedsToBeMocked()
{
// some code here that depends on external fact
我们正在应用程序中实现“同步到日历”功能。我们的同步过程涉及从服务器端获取的事件,我们希望将这些事件复制到iPhone日历中。目前,我不确定我们为这个同步编写的方法是否解决了所有可能的情况--这就是我想要对它进行单元测试的原因。它包含对EKEventStore的多次调用,正如苹果文档所述,这些调用需要首先用requestAccessToEntityType:completion:调用:
在iOS 6及更高版本上,必须在使用requestAccessToEntityType:completion: for data to return初始化事件存储后请求对实体类型的访问。
在运行单元测试
我想断言传入PHPUnit测试方法的值/对象是由getMockBuilder初始化的模拟。例如:
class Example_Test extends PHPUnit_Framework_TestCase
{
...
public function testMethod(Some_Class $object_mock)
{
// since methods like "expects" will be used below,
// this needs to be a mock
assert('
我们正在尝试使用Gherkin/Cucumber进行单元测试。在maven项目中,我们使用JUnit/Jmockit进行以下格式的单元测试,效果良好。
旧的Junit测试类曾经工作过:
@RunWith(JMockit.class)
public class UnitTestClass{
@Mocked
AClass mockedObject;
@Test
public void AMethodTest() {
try {
new NonStrictExpectations() {
{
我想要创建一个模拟,其中一个对象返回一个属性的值,这个值来自同一个模拟实例的另一个属性,但我不知道如何用Moq设置这个值。
我为安装程序/SetupGet找到的所有签名只允许返回常量值,而不能返回来自同一个对象的值。
例子:
void Main()
{
var obj = GetMock().Object;
obj.PropA = "test";
Console.WriteLine(obj.Id); // Should return -354185609, as it's the result of "test".GetHas
是否有一种方法来设置AutoFixture.AutoMoq,以便在模拟抽象类时使用特定的构造函数?
我需要测试在抽象类中完成的实现。但是,我确实需要使用一个特定的构造函数。
public abstract class A
{
public A(IQueryable q) // I need to use this
{ /*...*/ }
}
致以敬意,
编辑:
我试图使用类似于下面的东西,但仍然不起作用。这个类是抽象的,所以我需要模拟它,但是我需要一个非常具体的构造函数。
如何告诉AutoMoq,当嘲笑A时,请不要使用MockConstructorQuery或GreedyMo